在动态 SQL 中添加撇号

Adding an apostrophe into a dynamic SQL

我想问一下如何在动态中添加撇号SQL。我需要在其中一列中 return 一个 SQL 语句,它本身必须有撇号。

我有以下声明:

SET @SQL_String = N'INSERT INTO #ReturnTable
    (
    TableName,
    ColName,
    SQL_Statement,
    Value
     )
VALUES
    (
    ''' + @TableName + ''',
    ''' + @ColName + ''',
    ''' +
         'SELECT ' + 
             @ColName +
         ' FROM ' +
             @TableSchema + '.' + @TableName +
         ' WHERE ' + 
             @ColName + ' = ' + CAST(@GuidArgument AS NVARCHAR(50)) + ';' +''',
        (
        SELECT
            ' + @ColName + '
        FROM
            ' + @TableSchema + '.' + @TableName +
       ' WHERE '
            + @ColName + ' = ''' + CAST(@GuidArgument AS NVARCHAR(50)) + 
       '''))';

执行方式:

EXECUTE @RC = [dbo].[GetLocationOfGuidPre] 'F2CAB996-F00F-43B8-A67A-0000721A829D'

我需要先把一个完整的CAST放到一对'.

我试过:

请使用 CHAR(39) 而不是直接在动态代码中键入 '。 示例:

declare @my_dynamic_sql nvarchar(max) = 'print char(39);';
exec(@my_dynamic_sql);