В хранимой процедуре я динамически создаю запрос с помощью INSERT. Это делается для того, чтобы принудительно установить значения по умолчанию (например, с @name, если оно равно NULL).
SET @sql = 'INSERT INTO table (username, password'
+ CASE @name IS NULL THEN '' ELSE ',name' END
+ ') VALUES (''root'',''gelehallon''' +
+ CASE @name IS NULL THEN '' ELSE ',''@name''' END
+ ')'
EXEC sp_executesql @sql
SET @id = SCOPE_IDENTITY()
@ id будет 0 независимо от того,
Как я могу безопасно получить IDENTITY, даже если другой поток выполняет ту же хранимую процедуру одновременно?