删除语句在存储过程中不起作用

时间:2015-01-29 09:32:37

标签: sql-server stored-procedures

我正在尝试从存储过程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

1 个答案:

答案 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