Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
DelMast
Зарегистрирован: 24.01.2007 Сообщения: 4
|
Добавлено: Ср Янв 24 2007 12:45 Заголовок сообщения: Вставка в SQL |
|
|
Доброе время суток!
Подскажите, плиз!
Есть таблицы
Подразделения (ID_Подразделения, Название подразделения)
и
Сотрудники (ID_Сотрудника, ФИО, ID_Подразделения).
Связаны по полю "ID_Подразделения".
Не могу написать процедуру которая вставляет в таблицу Сотрудники ID_подразделения и ФИО сотрудника. ID_Подразделения берётся из таблицы "Подразделения".
Пишу вот так:
CREATE PROCEDURE [dbo].[Insert_Sotr]
(@FIO_Sotr Varchar (50),
@Name varchar (50))
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO dbo.Sortudniki (FIO,ID_Podr )
VALUES (@FIO_Sotr,
(SELECT ID_Podr FROM dbo.Podrazdeleniya WHERE Name_podr=@Name))
END
Значение параметров берутся из делфи 7 работаю через ADO и SQL Server 2005
Выдает ошибку. Знаю что ответ гдето рядом но меногу сообразить |
|
Вернуться к началу |
|
 |
критикан
Зарегистрирован: 18.02.2005 Сообщения: 247
|
Добавлено: Чт Фев 08 2007 16:47 Заголовок сообщения: самый удобный интерфейс -- командная строка |
|
|
сразу виден мсскл. он допускает такую конструкцию:
Код: |
INSERT INTO dbo.Sortudniki (FIO,ID_Podr )
SELECT @FIO_Sotr, ID_Podr FROM dbo.Podrazdeleniya WHERE Name_podr=@Name
|
правда, если поле ID_Sotr не допускает значения NULL и не генерируется автоматически, то нужно указать ещё и его.
Вообще-то, когда спрашивают, как исправить ошибку, то хотя бы сообщают, какую именно ошибку (описание, номер и т. п.) нужно исправить. Подозреваю, что описание ошибки следующее:
Subqueries are not allowed in this context. Only scalar expressions are allowed.
а номер -- 1046
-----------------------------------------------
самый удобный интерфейс -- командная строка. Она может всё. А разные ады, мышки с рулями и прочие глюки умеют только рожать тараканов |
|
Вернуться к началу |
|
 |
DelMast
Зарегистрирован: 24.01.2007 Сообщения: 4
|
Добавлено: Пт Фев 09 2007 03:48 Заголовок сообщения: |
|
|
Спасибо за совет! |
|
Вернуться к началу |
|
 |
|