问1个获取动态SQL中执行变量的问题
时间:2011-12-15
来源:互联网
示例脚本如下:
CREATE TABLE TEST2
(
ID VARCHAR(20),
NAME VARCHAR(20)
)
INSERT INTO TEST2
SELECT '1','A'
UNION ALL
SELECT '2','B'
UNION ALL
SELECT '3','C'
DECLARE @StrSql varchar(max),@StrContent varchar(1000)
SELECT @StrContent = ''
select @StrSql = 'SELECT @StrContent = ID +'',''+ @StrContent FROM TEST2'
EXEC(@StrSql)
PRINT @StrContent
最终的结果是@StrContent = 1,2,3,但单独写好用,我放到动态sql中执行就不行(找不到变量 @StrContent),求解上面问题。
CREATE TABLE TEST2
(
ID VARCHAR(20),
NAME VARCHAR(20)
)
INSERT INTO TEST2
SELECT '1','A'
UNION ALL
SELECT '2','B'
UNION ALL
SELECT '3','C'
DECLARE @StrSql varchar(max),@StrContent varchar(1000)
SELECT @StrContent = ''
select @StrSql = 'SELECT @StrContent = ID +'',''+ @StrContent FROM TEST2'
EXEC(@StrSql)
PRINT @StrContent
最终的结果是@StrContent = 1,2,3,但单独写好用,我放到动态sql中执行就不行(找不到变量 @StrContent),求解上面问题。
作者: fox123871 发布时间: 2011-12-15
SQL code
CREATE TABLE TEST2 ( ID VARCHAR(20), NAME VARCHAR(20) ) INSERT INTO TEST2 SELECT '1','A' UNION ALL SELECT '2','B' UNION ALL SELECT '3','C' DECLARE @StrSql nvarchar(max),@StrContent nvarchar(1000) SELECT @StrContent = '' select @StrSql = 'SELECT @StrContent = @StrContent+ID +'','' FROM TEST2' EXEC sp_executesql @StrSql,N'@StrContent nvarchar(1000) output',@StrContent OUTPUT PRINT @StrContent --1,2,3,
作者: roy_88 发布时间: 2011-12-15
需要用sp_executesql獲取,用nvarchar類型,樓主注意看我寫的格式,你的字符串會讓3在前面顯示
作者: roy_88 发布时间: 2011-12-15
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28