如何在SQL Server中的字段中逃避撇号?

Mik*_*ook 2 sql sql-server

几天前我问了一个关于通过运行SELECT将数据移动到另一台服务器来创建INSERT的问题.这很有效,直到我遇到一个完整的HTML和撇号表.处理这个问题的最佳方法是什么?幸运的是没有太多的行,所以作为"复制和粘贴"的最后手段是可行的.但是,最终我需要这样做,那时候表格可能太大了,无法复制和粘贴这些HTML字段.

这就是我现在拥有的:

select 'Insert into userwidget ([Type],[UserName],[Title],[Description],[Data],[HtmlOutput],[DisplayOrder],[RealTime],[SubDisplayOrder]) VALUES ('
    + ISNULL('N'''+Convert(varchar(8000),Type)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),Username)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),Title)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),Description)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),Data)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),HTMLOutput)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),DisplayOrder)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),RealTime)+'''','NULL') + ','
    + ISNULL('N'''+Convert(varchar(8000),SubDisplayOrder)+'''','NULL') + ')' 
    from userwidget 
Run Code Online (Sandbox Code Playgroud)

除了HTMLOutput字段中那些讨厌的撇号之外,哪个工作正常.我可以通过在撇号上加倍查询来逃避它们,还是有一种编码字段结果的方法,这样无关紧要?

Pau*_*ann 5

您可以用双撇号替换单撇号.

ISNULL('N'''+ REPLACE(Convert(varchar(8000),Type), '''', '''''') + '''','NULL') + ','
Run Code Online (Sandbox Code Playgroud)