0
Я хочу использовать IN opeartor в sp_executesql, но перед ошибкой, что неверный синтаксис рядом с '@TagIndexListToAdjust
'.Как передать список, разделенный запятой, в sp_executesql
Эта ошибка возникает из-за одинарных кавычек с обеих сторон значения параметра '(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)'
Любая помощь будет исправлена при исправлении ошибки.