当前位置:Gxlcms > 数据库问题 > MSSQL存储过程实现拼接sql的注意点

MSSQL存储过程实现拼接sql的注意点

时间:2021-07-01 10:21:17 帮助过:2人阅读

@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方面的知识很是不足,所以在这里记录来巩固自己

  

MSSQL存储过程实现拼接sql的注意点

标签:

人气教程排行