我正在尝试为表中的数据创建INSERT SQL脚本。 (类似于脚本中内置的SQL Server)
DECLARE @HEADER varchar(255)
SET @HEADER = 'insert into Table ( Column1 , Column2)
values ( N'''
SELECT
@Header + Column1 + ''', N''' + Column2 + ''')'
+ CHAR(10)
FROM Table
ORDER BY Column1
在Column1中,我有包含单引号的文本,我需要它作为双单引号文本出现,就像直接从SQL Server使用“生成脚本”时那样。
答案 0 :(得分:4)
使用REPLACE
函数加倍引号,您需要将结果字符串包装在引号中。请注意,这适用于NOT NULL
列,因此如果您需要支持可为空的列,请进行调整。
SELECT
'INSERT INTO Table (Column1, Column2) VALUES (N''' +
REPLACE(Column1, '''', '''''') + ''', N''' +
REPLACE(Column2, '''', '''''') + ''')'
FROM Table
ORDER BY Column1
答案 1 :(得分:2)
您可以使用QUOTENAME功能。
SELECT
@Header + QUOTENAME(Column1) + ''', N''' + Column2 + ''')'
+ CHAR(10)
FROM Table
ORDER BY Column1
答案 2 :(得分:0)
我猜您想要根据现有表生成插入脚本吗?
我建议您下载SSMS Tools。这是一个很好的附加功能,可以与SSMS一起使用。其中一个功能允许您右键单击一个表,它将为您生成包含表中数据的插入脚本。