我有一个存储过程,我在其中声明了一个需要使用动态 sql 填充的 int 变量
CREATE PROCEDURE USP_aTABLE_ADD
/*
stored procedure variables
*/
AS
DECLARE @count int
SET @count = 1
DECLARE @qry nvarchar(max)
/*
SET UP @qry which will look like this
SELECT @count = count(*) FROM aTABLE WHERE (col1 = 'val1' AND col2 = 'val2'...)
*/
/*
How to get the value of @count so that I can continue with add process
*/
IF @count = 0
BEGIN
/*add logic*/
END
最佳答案
使用 sp_executeSQL
和一个输出参数:
DECLARE @count INT = 1
DECLARE @qry NVARCHAR(MAX)
SET @qry = N'set @count = (....)'
EXEC sp_executesql @qry, N'@count INT OUTPUT', @count OUTPUT
SELECT @count
关于sql - 使用动态 sql 在存储过程中填充临时变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22067943/