如何在sp_executesql中传递逗号分隔的列表



我想在sp_executesql中使用IN opeartor ,但面临错误 语法不正确 接近 ' @TagIndexListToAdjust '.

此错误是由于参数值"(1,2,3)"两侧的单引号造成的。

我只需要在sp_executesql中修复它,因为此查询是由 C# 模型类生成的。

 USE [master]
    GO
    IF  EXISTS (SELECT * 
                FROM sys.objects
                WHERE object_id = OBJECT_ID(N'[dbo].[Persons]') AND type in (N'U'))
    DROP TABLE [dbo].Persons
    GO
    USE [master]
    GO
    CREATE TABLE Persons
    (
          commaList nvarchar(MAX),
    );
    insert into Persons values ('1')
    insert into Persons values ('2')
    insert into Persons values ('3')
    GO
    exec sp_executesql N'
    Select * 
    from Persons 
    where commaList in @TagIndexListToAdjust',
          N'@TagIndexListToAdjust varchar(67)',
          @TagIndexListToAdjust='(1,2,3)'

任何帮助都将在修复错误时得到认可。

使用 2 个引号.. 一个用于转义另一个。

相关内容

  • 没有找到相关文章

最新更新