Я создаю хранимую процедуру для создания нового клиента так, например,хранимые процедуры - Зная следующий ID
CREATE PROCEDURE Customer_Create
@customer_arg
@type_arg
AS
BEGIN
INSERT INTO Customer (Customer_id, Type_id)
VALUES (@Customer_arg,@type_arg)
End;
Если у меня есть несколько внешних ключей в моем заявлении, и все они идентификаторы есть способ для того, чтобы я автоматически удалял идентификационный номер NEXT, не зная, что будет с моей головы, когда я запустим инструкцию execute? Я хотел бы просто иметь его вытащить тот факт, что ID будет 2, потому что предыдущий рекорд был 1
EXECUTE Customer_Create 16,2
Является ли это что-то wnith output
? Если да, то как это работает, код wise
Вы используете [ IDENTITY] (http://msdn.microsoft.com/en-us/library/ms186775.aspx) в вашем идентификаторе? Если нет, это ваша проблема. Вы должны позволить базе данных генерировать новые значения. Как объясняют ответы, 'Scope_Identity()' может возвращать вновь назначенное значение идентичности в простых случаях, подобных этому, но oyu должен узнать о предложении 'OUTPUT', поскольку он намного полезнее. Стоит отметить, что назначенные значения могут быть не плотными. Например, если несколько строк вставляются во время транзакции и транзакция затем откатывается, значения id не будут повторно использоваться. – HABO