获取执行executesql得到的数据问题

GDRJY 2011-06-16 09:55:29
在一个存储过程中,有如下代码
DECLARE @CKDMSQL nvarchar(200)
DECLARE @CKDM nvarchar(100)
SET @CKDMSQL='select SHCode from tb_storehouse'

SET @CKDM=execute sp_executesql @CKDMSQL

我想将执行@CKDMSQL变量中的SQL语句后得到的数据用@CKDM保存起来,请问如何操作呢?
...全文
170 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
GDRJY 2011-06-16
  • 打赏
  • 举报
回复
结贴给分,感谢大家的参与。。
GoAwayZ 2011-06-16
  • 打赏
  • 举报
回复
把表变量换成普通的表.
GDRJY 2011-06-16
  • 打赏
  • 举报
回复
看来是SQL版本问题了,我看错了,是2000的,唉,公司太垃圾的数据库了,抱歉,都不知道怎么解决了
--小F-- 2011-06-16
  • 打赏
  • 举报
回复
declare @num int, @sqls nvarchar(4000) 
set @sqls='select count(*) from tableName'
exec(@sqls)

--如何将exec执行结果放入变量中?

declare @num int, @sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int ',@num
select @num
GDRJY 2011-06-16
  • 打赏
  • 举报
回复
我现在只要获得那个值就行了,我就把你的代码放上去就提示那样 的错误:和你一模一样的:
DECLARE @CKDMSQL nvarchar(200)

SET @CKDMSQL='select SHCode from tb_storehouse
WHERE SERVERID=(select SERVERID from tb_erpconfig WHERE ISMAIN=1 AND ISUSED=1)'

DECLARE @T TABLE(SHCode NVARCHAR(50))


INSERT @T exec(@CKDMSQL)
SELECT * FROM @T
中国风 2011-06-16
  • 打赏
  • 举报
回复
DECLARE @CKDMSQL nvarchar(200)
DECLARE @CKDM nvarchar(100)
SET @CKDMSQL='select top 5 Name from sysobjects'

DECLARE @T TABLE(SHCode NVARCHAR(50))


INSERT @T execute sp_executesql @CKDMSQL

SELECT * FROM @T

/*
sysrowsetcolumns
sysrowsets
sysallocunits
sysfiles1
syshobtcolumns
*/


以系統表為例
中国风 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 gdrjy 的回复:]

SQL2005
[/Quote]
不可能會出錯,把你的原碼貼出來
GDRJY 2011-06-16
  • 打赏
  • 举报
回复
SQL2005
水族杰纶 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gdrjy 的回复:]
四楼兄弟,还是一样的错误啊
[/Quote]
什么环境数据库?
GDRJY 2011-06-16
  • 打赏
  • 举报
回复
四楼兄弟,还是一样的错误啊
水族杰纶 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gdrjy 的回复:]
2楼代码提示错误:无法在向表插入变量时将 EXECUTE 用作源。
[/Quote]
DECLARE @CKDMSQL nvarchar(200)
DECLARE @CKDM nvarchar(100)
SET @CKDMSQL='select SHCode from tb_storehouse'

DECLARE @T TABLE(SHCode NVARCHAR(50))


INSERT @T exec(@CKDMSQL)
SELECT * FROM @T
GDRJY 2011-06-16
  • 打赏
  • 举报
回复
2楼代码提示错误:无法在向表插入变量时将 EXECUTE 用作源。
中国风 2011-06-16
  • 打赏
  • 举报
回复
DECLARE @CKDMSQL nvarchar(200)
DECLARE @CKDM nvarchar(100)
SET @CKDMSQL='select SHCode from tb_storehouse'

DECLARE @T TABLE(SHCode NVARCHAR(50))


INSERT @T execute sp_executesql @CKDMSQL

SELECT * FROM @T
中国风 2011-06-16
  • 打赏
  • 举报
回复
用臨時表或表變量獵取,或用XML變量

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧