我正在尝试从存储过程SQL-Server 2012中删除多个记录。我已选择然后删除语句,显然我的删除语句未被调用
ALTER PROCEDURE [dbo].[DeleteFunctionsNavigation]
@FunctionName nvarchar(250),
@Function_identity INT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT Navigation_Functions.Function_ID
FROM Navigation_Functions
WHERE Navigation_Functions.FunctionName = @FunctionName
SET @Function_identity=SCOPE_IDENTITY()
DELETE FROM Navigation_FunctionHierarchy
WHERE Navigation_FunctionHierarchy.Function_IDs = @Function_identity
RETURN
END
答案 0 :(得分:2)
在此上下文中SCOPE_IDENTITY()
的使用不正确。试试这个
ALTER PROCEDURE [dbo].[DeleteFunctionsNavigation]
@FunctionName nvarchar(250),
@Function_identity INT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT @Function_identity = Navigation_Functions.Function_ID
FROM Navigation_Functions
WHERE Navigation_Functions.FunctionName = @FunctionName
DELETE FROM Navigation_FunctionHierarchy
WHERE Navigation_FunctionHierarchy.Function_IDs = @Function_identity
RETURN
END