- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SqlServer存储过程基本语法
动态语句基本语法
1 :普通SQL语句可以用exec执行
Select * from tableName
exec(select * from tableName)
exec sp_executesql Nselect * from tableName -- 请注意字符串前一定要加N
2:字段名,表名,数据库名之类作为变量时,必须用动态SQL
declare @fname varchar(20)
set @fname = FiledName
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
exec(select + @fname + from tableName) -- 请注意 加号前后的 单引号的边上加空格
当然将字符串改成变量的形式也可
declare @fname varchar(20)
set @fname = FiledName --设置字段名
declare @s varchar(1000)
set @s = select + @fname + from tableName
exec(@s) -- 成功
exec sp_executesql @s -- 此句会报错
declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)
set @s = select + @fname + from tableName
exec(@s) -- 成功
exec sp_executesql @s -- 此句正确
3. 输出参数
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 output,@num output
select @num
1 :普通SQL语句可以用Exec执行 例: Select * from tableName
Exec(select * from tableName)
Exec sp_executesql Nselect * from tableName -- 请注意字符串前一定要加N
2:字段名,表名,数据库名之类作为变量时,必须用动态SQL
错误: declare @fname varchar(20)
set @fname = FiledName
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
正确: Exec(select + @fname + from tableName) -- 请注意加号前后的单引号的边上加空格
当然将字符串改成变量的形式也可
declare @fname varchar(20)
set @fname = FiledName --设置字段名
declare @s varchar(1000)
set @s = select + @fname + from tableName
Exec(@s) -- 成功
exec sp_executesql @s -- 此句会报错
--注:@s参数必须为ntext或nchar或nvarchar类型,必须将declare @s varchar(1000) 改为declare @s Nvarchar(1000)
如下:
declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)
set @fname = FiledName --设置字段名
您可能关注的文档
- 2001修正积分水平集算法的一个实现算法及其收敛性证明_英文_.pdf
- 2001何子述—— 基于数据共轭重排的修正ESPRIT信号DOA估计算法.pdf
- 2002-基于MATLAB的线性二次型最优控制器设计_周晓宏.pdf
- 2003word练习.doc
- 2002年安徽省高中数学竞赛.pdf
- 2003年ACCAHAESC室上性快速性心律失常治疗指南解读——房室结折返性心动过速.pdf
- 2003年ACCAHAESC室上性快速性心律失常治疗指南解读——大折返性房速.pdf
- 2003年上半年.doc
- 2003年上半年江苏省高等教育自学考试管理科学.doc
- 2003年ACC_AHA_ESC室上性快速性心律失常治疗指南解读_大折返性房速.pdf
文档评论(0)