【发布时间】:2013-01-23 22:42:01
【问题描述】:
我创建了一个存储过程,应该一次执行 2 次插入
第一步我想为每个插入创建一个新条目。
第二步,我将从这个条目中捕获创建的 Id
第三步我想从一个表中复制多个条目并将它们插入到同一个表中,并带有 Id
Create PROCEDURE dbo.Rolle_Copie
@Id as int,
@newId as int = 0,
@Name AS nvarchar(50)
AS
INSERT INTO Rollen (RolleName)
VALUES (@Name)
@newId = SCOPE_IDENTITY()
INSERT INTO Berechtigung_Rolle (RefRolleId,RefBerechtigungId)
SELECT
RefBerechtigungId, @newId
FROM
Berechtigung_Rolle
WHERE
RefRolleId = @Id
RETURN
但我得到一个错误
@newId 旁边的语法错误
谁能告诉我怎么了?
非常感谢任何建议
【问题讨论】:
-
当你有一个平静的时刻来学习新东西时,看看
OUTPUT。您可以使用OUTPUT子句从行中获取任何数据(注意复数。),例如Id值。OUTPUT可以与INSERT、UPDATE和DELETE一起使用,并在UPDATE的情况下提供对前后值的访问。一个非常值得放在口袋里的工具。
标签: sql sql-server stored-procedures