当前位置: 首页 > news >正文

网站建设中数据库的维护论文室外建筑网站

网站建设中数据库的维护论文,室外建筑网站,政务服务网站建设汇报,制作ppt用什么软件本文转自:http://www.cnblogs.com/hnsdwhl/archive/2011/07/23/2114730.html 当需要根据外部输入的参数来决定要执行的SQL语句时,常常需要动态来构造SQL查询语句,个人觉得用得比较多的地方就是分页存储过程和执行搜索查询的SQL语句。一个比较…

本文转自:http://www.cnblogs.com/hnsdwhl/archive/2011/07/23/2114730.html

当需要根据外部输入的参数来决定要执行的SQL语句时,常常需要动态来构造SQL查询语句,个人觉得用得比较多的地方就是分页存储过程和执行搜索查询的SQL语句。一个比较通用的分页存储过程,可能需要传入表名,字段,过滤条件,排序等参数,而对于搜索的话,可能要根据搜索条件判断来动态执行SQL语句。

在SQL Server中有两种方式来执行动态SQL语句,分别是exec和sp_executesql。sp_executesql相对而言具有更多的优点,它提供了输入输出接口,可以将输入输出变量直接传递到SQL语句中,而exec只能通过拼接的方式来实现。还有一个优点就是sp_executesql,能够重用执行计划,这就大大提高了执行的性能。所以一般情况下建议选择sp_executesql来执行动态SQL语句。

使用sp_executesql需要注意的一点就是,它后面执行的SQL语句必须是Unicode编码的字符串,所以在声明存储动态SQL语句的变量时必须声明为nvarchar类型,否则在执行的时候会报“过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'”的错误,如果是使用sp_executesql直接执行SQL语句,则必须在前面加上大写字母N,以表明后面的字符串是使用Unicode类型编码的。

下面来看看几种动态执行SQL语句的情况

1.普通SQL语句

(1)exec('select * from Student')

(2)exec sp_executesql N'select * from Student'--此处一定要加上N,否则会报错

2.带参数的SQL语句

(1)declare @sql nvarchar(1000)

declare @userId varchar(100)

set @userId='0001'

set @sql='select * from Student where UserID='''+@userId+''''

exec(@sql)

(2)declare @sql nvarchar(1000)

declare @userId varchar(100)

set @userId='0001'

set @sql=N'select * from Student where UserID=@userId'

exec sp_executesql @sql,N'@userId varchar(100)',@userId

从这个例子中可以看出使用sp_executesql可以直接将参数写在sql语句中,而exec需要使用拼接的方式,这在一定程度上可以防止SQL注入,因此sp_executesql拥有更高的安全性。另外需要注意的是,存储sql语句的变量必须声明为nvarchar类型的。

(3)带输出参数的SQL语句

create procedure sp_GetNameByUserId

(

@userId varchar(100),

@userName varchar(100) output

)

as

declare @sql nvarchar(1000)

set @sql=N'select @userName=UserName from Student where UserId=@userId'

exec sp_executesql N'@userId varchar(100),@userName varchar(100) output',@userId,@userName output

select @userName

http://www.yayakq.cn/news/320032/

相关文章:

  • 如何做淘宝优惠券网站jsp网站开发教学视频教程
  • 网站布局模板asp做网站的缺点
  • 深圳系统开发高端网站建设怎样实现wordpress订单提醒功能
  • 经典wordpress网站申请网站服务器
  • 资兴网站设计用iis搭建网站
  • 珠海企业网站百度推广关键词怎么优化
  • wap网站代码江西天亿建设有限公司网站
  • 长沙网站建设市场低价网站颜色搭配网站
  • wordpress设置网站背景图片贵州 网站备案
  • 手机网站判断跳转辽宁省建设厅官网
  • 竹子建站是什么目前专业做水果的网站
  • oa系统网站建设wordpress ydg theme
  • 站群cms建站系统免费宣传网站有哪些
  • 校庆专题网站建设方案站长资源平台百度
  • 网站托管及维护开发网站 需求
  • 黄页网站大全免费10个免费网站
  • 淮安市交通建设局网站一个设计公司的简介
  • 如何查看网站流量国内免费无版权视频素材网站
  • 建个微商城网站抢先注册网站域名卖掉
  • 双人网页游戏网站网站建设 枫子科技
  • 设计一个电商网站的首页男男床上爱做 网站
  • 网站内页做友链外国网页设计网站
  • 哪个网站有工笔教程关键词代做排名推广
  • 我的网站模板网络管理系统建设方案
  • wordpress网站速度慢免费网上销售平台
  • 三亚哪里做网站临西网站建设公司
  • 安卓系统上怎样做网站前端开发企业建设网站注意事项
  • 大气网络公司网站源码网站制作需要平台
  • 用asp.net做购物车网站长沙网络营销哪家好
  • 企业网站的建设步骤包括seo如何快速出排名