回 帖 发 新 帖 刷新版面

主题:如何在存储过程中动态执行SQL语句


比如在存储过程中,执行了如下语句
declare @A nvarchar(20)
declare @B nvarcahr(20)
select @A=Col1,@B=Col2 from Table1
现在的问题是要从表Table2中取得列名为@A和@B的值,应该当如何实现?

回复列表 (共3个回复)

沙发

你定义的时候吧它定义为:
CREATE PROCEDURE proc_xx
(
@A nvarchar(20) out,
@B nvarcahr(20) out
)

板凳

樓上不是我要的結果,@A和@B是變量,在另一個表table2中又是列名,我想返回table2中包含@A和@B這兩列的結果集。

3 楼

DECLARE @InsertString AS NVARCHAR(4000)

SET @InsertString = N'SELECT  @vR=' + @vRights + N' FROM Z_操作员权限表 WHERE 职工编号=''' + @vZGBH + N''' AND 数据表=''' + @vTableName + N''''
EXEC sp_executesql  @InsertString, N'@vR BIT OUTPUT', @vR = @vResult OUTPUT
PRINT @vResult

我来回复

您尚未登录,请登录后再回复。点此登录或注册