怎么写存储过程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的注意点,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
您可能感兴趣
- sqlserver常用流控语句(SQL Server实现自动循环归档分区数据脚本详解)
- sqlserver限制windows身份登录(解决sql server 数据库,sa用户被锁定的问题)
- sqlserver游标实例(Sql Server临时表和游标的使用小结)
- sql server 进阶(SqlServer AS的用法)
- sqlserver提供的内置函数(Sqlserver 自定义函数 Function使用介绍)
- sql怎么取随机数(SQLServer 使用rand获取随机数的操作)
- sqlserver2008数据库的备份(sql server 2008 压缩备份数据库20g)
- 2021-10-24 10:26:05
- sqlserver 怎么排序(SQLserver排序规则基本概念探索)
- SqlServer 表单查询问题及解决方法(SqlServer 表单查询问题及解决方法)
- 怎么开放sql server端口(SQLServer2019配置端口号的实现)
- centos系统mysql安装及连接教程(CentOS8安装SQLServer2019的过程)
- windows安全策略设置sqlserver(SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7Administrator 的信)
- sql死锁进程保护(SqlServer查询和Kill进程死锁的语句)
- 查sqlserver锁表语句(Sql Server如何查看被锁的表及解锁的方法)
- sqlserver中有几种锁定模式(SQL Server 开窗函数 Over代替游标的使用详解)
- 大果肉搭配薄瓜皮, 绿宝 脆甜爽口,不愧是甜瓜中的 佼佼者(大果肉搭配薄瓜皮)
- 河南尉氏县因地制宜发展果蔬种植 水坡镇绿宝甜瓜变 金瓜(河南尉氏县因地制宜发展果蔬种植)
- 谢广坤,你这么欺负谢腾飞,良心不会痛吗(你这么欺负谢腾飞)
- 乡村爱情15 宋晓峰怀疑自己孩子,腾飞与姜奶奶亲子鉴定出结果(宋晓峰怀疑自己孩子)
- 《乡村爱情13》开播,新版刘能以假乱真,编剧思维进入瓶颈(新版刘能以假乱真)
- 当年的 白洋淀战神 练肌肉 嘎子哥也成为行走的荷尔蒙(当年的白洋淀战神)
热门推荐
- IEnumerable、GetEnumerator、IEnumerator之间的关系
- mysql锁技术(MySQL 加锁控制并发的方法)
- mysql各种锁详解(MySQL 查看事务和锁情况的常用语句分享)
- docker插件容器使用(Docker容器开jupyter不能访问到的解决方法)
- css 圆角卡片样式(css实现带圆角三角型的示例代码)
- js实现自动轮播(原生js封装无缝轮播功能)
- dedecms标题在哪改(dedecms任意页面调用栏目内容标签{dede:field.content/}的方法)
- Chrome谷歌浏览器开发者工具中Profiles的使用
- python 获取ip mac 地址(Python3获取电脑IP、主机名、Mac地址的方法示例)
- 关闭ssl证书验证模块(开启OCSP提升https证书验证效率解决Let’s Encrypt SSL证书访问慢的问题)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9