Как обращаться с апостофом при вставке записи в динамическую соль - PullRequest
0 голосов
/ 21 ноября 2019

Вот пример хранимой процедуры. Реальный SP содержит 35 параметров. Из них только один параметр Сообщение может содержать апостроф. Если я пытаюсь вставить такую ​​запись в таблицу, получаю ошибку. Как с этим справиться.

 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

1 Ответ

1 голос
/ 21 ноября 2019

Вы потеряли несколько символов.

Попробуйте:

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
...