这里我昨天碰到的问题就是执行一段根据变量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的注意点,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新动态
- 莫西子诗-月光白得很[WAV分轨]
- 陈兰丽.1978-泪的追想(2017梦田复刻版)【凯联机构】【WAV+CUE】
- 白冰冰.2006-冰的情火【龙吟唱片】【WAV+CUE】
- 邰正宵.2007-我不配【环球】【WAV+CUE】
- 贵族音乐《大自然声息 白噪音不间断 森林的梦游者》[FLAC/分轨][218.26MB]
- 贵族音乐《宝宝哄睡钢琴曲 睡眠竖琴古典乐章》[320K/MP3][131.58MB]
- 贵族音乐《宝宝哄睡钢琴曲 睡眠竖琴古典乐章》[FLAC/分轨][163.45MB]
- dnf固伤职业有哪些2022
- 歧路旅人大陆的霸者自选五星角色推荐 开局自选角色选什么好
- 原版CD原抓-拿索斯古典精讯24K金音响测试碟》[WAV+CUE]
- 多维立体环绕音效《时光音符AQCD》2CD[WAV]
- 女声三人演唱组-戏东方DTS-WAV
- 群星.2004-爱情映画祭【SONY】【WAV+CUE】
- 腾格尔.1993-八千里路回首【风潮】【WAV+CUE】
- 胡德夫.2022-最后的猎人【无非文化】【WAV+CUE】