Re[2]: INSERT ..... SELECT .... за раз
От: prockrut  
Дата: 20.11.06 13:37
Оценка:
S>Можно попытаться сделать встроенную процедуру и передать identity оттуда в качестве output параметра.

S>ЗЫ. Вместо @@identity лучше использовать scope_identity(), так как в случае наличия на таблице триггеров, вставляющих данные в другие таблице @@identity вернет значение счетчика не из той таблицы.



Не нашел, что значит встроенная процедура
Сделал Stored Procedure
Вопрос: как извлечь id?


==================================================================
CREATE PROCEDURE NewObject
@Name nvarchar,
@id int
AS

INSERT INTO MyObjects([Name]) VALUES(@Name)
SET @id= @@IDENTITY -- либо SCOPE_IDENTITY()
GO
==================================================================



Вариант
SQLExecDirect(hStmt, "DECLARE @id int EXECUTE CreateAsset NewObject, 'Name' @id OUTPUT SELECT @id AS [Identity]", SQL_NTS);


Опять же не проходит
запись добавляется
результат 0 Col 1 Row (те не возвращает)

Хелп, что я не так сделал?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.