【发布时间】:2011-03-31 04:20:02
【问题描述】:
在我的存储过程中,我必须传递一个每次都可能更改的表和列名。所以我构建命令并执行它。我想要另一个变量@curr_id 中的输出。这个存储过程将被第二个存储过程调用,并使用@curr_id 作为输入。
我的问题是填充 @curr_id 变量。它返回为零。如果我删除 curr_id 变量然后它可以工作(见注释行)
有人可以吗?告诉我 - 如何让@curr_id 填充并作为输出返回? - 如何从第二个存储过程调用第一个存储过程?
ALTER PROCEDURE [dbo].[sp_astm_getcurrid]
@ColName as nvarchar(250),
@TblName as nvarchar(250),
@curr_id nvarchar(max) OUTPUT
AS
BEGIN
DECLARE @cmd nvarchar(max)
SET @cmd =N'SET '+@curr_id+'= SELECT MAX('+@ColName+') FROM '+@TblName;
--SET @cmd =N'SELECT MAX('+@ColName+') FROM '+@TblName;
EXEC (@cmd)
END
【问题讨论】:
标签: sql-server sql-server-2005 dynamic-sql