怎么写存储过程sql server(SqlServer存储过程实现及拼接sql的注意点)
类别:数据库 浏览量:1201
时间:2022-03-29 10:02:06 怎么写存储过程sql server
SqlServer存储过程实现及拼接sql的注意点这里我昨天碰到的问题就是执行一段根据变量tableName对不同的表进行字段状态的更改。由于服务器原因,我不能直接在数据访问层写SQL,所以只好抽离出来放到存储过程里面。
这里就出现了一个问题,我花费了好久才弄通!
其实就是很简单的一个SQL语句:
update table1 set field1=value1,field2 = value2 where id = id
我写成什么样子了呢?大家且看:
declare @tableName nvarchar(50), @field1 int, @field2 nvarchar, @id int declare @sql nvarchar(max) set @sql = 'update '+@tableName+' set field1= '+@field1+',field2= '+@field2+' where id='+@id exec @sql
有过这方面经验的同学肯定知道这样写明显是错的,sql会报异常,说无法讲nvarchar转换成int类型
那么这个错误是具体是值什么呢?其实就是说,在拼接sql的时候,这个@sql要是一个字符串类型,所有的变量也都必须用字符串表示,我上面的@field1和@id是int,所以要转化成nvarchar类型,并且是nvarchar类型的变量(字段)必须用单引号括起来;注:在sql中单引号是用两个单引号表示的
所以经过修改,正确的拼接sql代码是:
set @sql='update '+@tableName+ ' set field1='+cast(@field1 as varchar)+',field2='''+@field2+''' where id='+CAST(@id as varchar)
这个问题其实非常简单,但是由于我在SQL方面的知识很是不足,所以在这里记录来巩固自己。
以上所述是小编给大家介绍的SqlServer存储过程实现及拼接sql的注意点,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
您可能感兴趣
- sql server建表语句带字段说明(SqlServer给表增加多个字段的语法)
- sqlserver存储过程使用变量(浅析SQL Server的嵌套存储过程中使用同名的临时表怪像)
- sqlserver日志被删除(sql server日志处理不当造成的隐患详解)
- sqlserver自增字段(SQL Server中identity自增的用法详解)
- SQLServer日期函数总结案例详解(SQLServer日期函数总结案例详解)
- sqlserver数据库实时同步(SQL Server实时同步更新远程数据库遇到的问题小结)
- sqlserver小结(基于sqlserver的四种分页方式总结)
- sqlserver常用配置调整(sql server性能调优 I/O开销的深入解析)
- sqlserver实例全库备份(sql server通过脚本进行数据库压缩全备份的方法推荐)
- sqlserver语句中的temp(SQL SERVER中强制类型转换cast和convert的区别详解)
- sqlserver降序排列(SQL SERVER临时表排序问题的解决方法)
- sqlserver索引介绍(浅析SQL Server的聚焦使用索引和查询执行计划)
- sqlserver函数条件判断(Sql Server 开窗函数Over的使用实例详解)
- sqlserver字符串判断函数(解决sql server保存对象字符串转换成uniqueidentifier失败的问题)
- sqlserver删除表的第一行数据(sql server删除前1000行数据的方法实例)
- sqlserver基础数据类型(SQL Server中T-SQL 数据类型转换详解)
- 开国中将,王牌军63军首任政委,两个连襟一个上将一个少将传为佳话(王牌军63军首任政委)
- 臭名昭著的731部队最高负责人 石井四郎(臭名昭著的731部队最高负责人)
- 王牌部队,你看的剧情我看的时尚(你看的剧情我看的时尚)
- 被鉴定的古董价值300万 当心,你可能遇到诈骗了(被鉴定的古董价值300万)
- 英语难学吗(初中英语难学吗)
- 如何追女孩子(如何追女孩子的技巧和方法)
热门推荐
- pythonsocket建立多用户通讯(Python socket实现多对多全双工通信的方法)
- phpinclude的使用方法(PHP defined函数的使用图文详解)
- 如何判别云服务器的优劣(选用云服务器的这四大风险必须知道)
- 宝塔面板服务器连接不上(宝塔面板后台登陆不显示验证码解决办法)
- docker菜鸟教程(Docker简单入门使用教程)
- laravel模型使用技巧(提高Laravel应用性能方法详解)
- Windows2012配置SQLServer2014AlwaysOn的图解(Windows2012配置SQLServer2014AlwaysOn的图解)
- vue3 ref 的用法(Vue3中watchEffect的用途浅析)
- mysql读写分离同步策略(Mysql主从复制与读写分离图文详解)
- 三种css选择符(浅谈css之属性及剩余的选择符)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9