+ -
当前位置:首页 → 问答吧 → 使用动态sql查询数据的问题

使用动态sql查询数据的问题

时间:2011-11-24

来源:互联网

需要使用库表中的A,B两个字段,两个字段是主键,不想用游标,不知道以下得写法是不能够检索出数据
@Where是已经拼好的sql语句
Set @SQLPWK1 = 'SELECT A,B FROM ' + @TableName + @Where
exec sp_executesql @SQLPWK1, N'@A int output',@A output,
  N'@B int output',@B output
select @A 
select @B 

作者: zhanghr2005   发布时间: 2011-11-24

SQL code
Set @SQLPWK1 = 'SELECT @A=A,@B=B FROM ' + @TableName + @Where
exec sp_executesql @SQLPWK1, N'@A int output',@A output,
  N'@B int output',@B output
select @A  
select @B 


大概是这种写法,语法没检查,楼主自己检查一下

作者: FlySQL   发布时间: 2011-11-24

declare @SQLWK1 nvarchar(4000)
Set @SQLPWK1 = 'SELECT A,B FROM ' + @TableName + @Where
exec(@SQLWK1)

就行了,可以直接得到含有A,B的结果集.

作者: qianjin036a   发布时间: 2011-11-24

引用 1 楼 flysql 的回复:
SQL code

Set @SQLPWK1 = 'SELECT @A=A,@B=B FROM ' + @TableName + @Where
exec sp_executesql @SQLPWK1, N'@A int output',@A output,
N'@B int output',@B output
select @A
select @B


大概是这种写法,……

.

作者: sql_sf   发布时间: 2011-11-24

如果把@A,@B传到查询语句中去的话,得到的仅是结果集中最后一条记录的A,B值.

作者: qianjin036a   发布时间: 2011-11-24

exec(@SQLWK1)

作者: ssp2009   发布时间: 2011-11-24