SqlServer存储过程实现及拼接sql的注意点
作者:沉睡的木木夕 时间:2024-01-24 17:12:17
这里我昨天碰到的问题就是执行一段根据变量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的注意点网站的支持!
标签:sqlserver,存储过程,拼接sql
0
投稿
猜你喜欢
Spark中的数据读取保存和累加器实例详解
2022-09-13 19:26:46
Python画图实现同一结点多个柱状图的示例
2021-04-21 23:26:04
MySQL最好的优化技巧
2009-10-27 12:05:00
AJAX 自学练习 无刷新提交并修改数据库数据并显示
2024-01-18 20:21:23
Go语言中的Array、Slice、Map和Set使用详解
2023-06-24 07:29:03
mysql共享锁与排他锁用法实例分析
2024-01-20 15:15:26
浅谈利用numpy对矩阵进行归一化处理的方法
2021-10-12 01:22:41
php实现压缩多个CSS与JS文件的方法
2023-11-23 08:39:59
asp 通用修改和增加函数代码
2011-03-16 11:15:00
对python3中的RE(正则表达式)-详细总结
2022-12-28 23:33:41
Python教程之Python多态的深层次理解
2021-07-30 07:50:53
Asp.net实现简单的文字水印
2007-08-24 09:28:00
让ASP也支持动态include文件
2008-05-08 13:00:00
如何给 legend 标签设定宽度
2008-07-26 12:18:00
设定sql server定期自动备份数据库
2024-01-16 18:14:30
python打印当前文件的绝对路径并解决打印为空的问题
2023-10-26 16:24:00
MySQL中数据查询语句整理大全
2024-01-15 21:59:05
mysql中模糊查询的四种用法介绍
2024-01-23 17:03:02
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
2023-09-07 18:25:35
手把手教你使用Python创建微信机器人
2022-02-11 14:12:29