如果有人回答我很抱歉,但我在搜索时找不到它。
我正在编写一个存储过程,它会生成一个迁移脚本,其中包含以下内容:
'insert into dbo.source_line_items (id, name, comment)
VALUES('
+ ' '+ CASE WHEN id IS NULL THEN isnull(id,'NULL') ELSE ''''+ id + '''' END + ', '
+ ' '+ CASE WHEN name IS NULL THEN isnull(name,'NULL') ELSE ''''+ name + '''' END + ', '
+ ' '+ CASE WHEN comment IS NULL THEN isnull(comment,'NULL') ELSE ''''+ comment + '''' END + ', '
这一般是正常的,但我正在迁移的一些数据中包含“中的字符”。因此,我生成一些像
这样的sql语句insert into Table(id, name, comment)
VALUES('874', 'O'Brien',NULL)
当'在数据中时,是否有一种简单的方法让我的脚本自动替换'with'?
答案 0 :(得分:2)
SQL Server使用双刻度来查找字符串中的单个刻度。像REPLACE()
一样使用双重刻度:
REPLACE(name,'''','') --To remove ticks
REPLACE(name,'''','''''') --To replace single with double ticks
完整:
CASE WHEN name IS NULL THEN isnull(name,'NULL')
ELSE ''''+ REPLACE(name,'''','''''') + '''' END