首页 > 解决方案 > 在动态sal中插入记录时如何处理撇号

问题描述

这是示例存储过程。Real SP 包含 35 个参数。其中只有一个参数 Message 可以包含撇号。如果我尝试将此类记录插入表中,则会出现错误。如何处理。

 Create Procedure ProcInsertRecord
    @Name varchar(30),
    @mobile_no varchar(30),
    @message varchar(30),
    @Address varchar(30),
    @Designation varchar(30)
    as
    begin

    set @SQL = 'INSERT INTO ['+@table+'](Name,Mobile,Message,Address,Designation) values ('''+@Name +''' , '+@mobile_no+' , '''+@message+''','''+@Address+''','''@Designation+''')

    sp_helptext @SQL 

    end

标签: sqlsql-serverdynamic-sql

解决方案


你失去了一些角色。

尝试:

DECLARE
    @Name VARCHAR(30) = 'Name',
    @mobile_no VARCHAR(30) = 'Mobile',
    @message VARCHAR(30) = 'Message',
    @Address VARCHAR(30) = 'Adress',
    @Designation VARCHAR(30) = 'Designation',
    @SQL VARCHAR(1000) = 'SQL',
    @table VARCHAR(100) = 'table'


SET @SQL = 'INSERT INTO [' + @table + '](Name,Mobile,Message,Address,Designation) values (''' + @Name + ''' , ' + @mobile_no + ' , ''' + @message + ''',''' + @Address + ''',''' + @Designation + ''')'

PRINT @SQL

推荐阅读