• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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 存储过程带事务 拼接id 返回值
    • sqlServer实现去除字符串空格
    • sqlserver,sqlite,access数据库链接字符串整理
    • sqlserver、mysql获取连接字符串步骤
    • SQLSERVER 拼接含有变量字符串案例详解
    上一篇:sql server 2012 备份集中的数据库备份与现有的xxx数据库不同
    下一篇:MySQL 及 SQL 注入与防范方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    SqlServer存储过程实现及拼接sql的注意点 SqlServer,存储,过程,实现,