sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo usar una cadena separada por comas Pass en una consulta dinámica en SQL

Cuando crea un SQL dinámico como ese, debe envolver su parámetro entre comillas dobles ''

declare @ProductIDs varchar(11)
declare @SQL varchar(max)

set @ProductIDs='1,2,3,4'
declare @query varchar(max)
--set @query= @ProductIDs +','[email protected]

SELECT @SQL = 'SELECT val FROM dbo.[fnDelimitedStringToTable]('''+ @ProductIDs +''' , '','')'

Exec(@SQL)

De esta forma la sentencia SQL será:

SELECT val FROM dbo.[fnDelimitedStringToTable]('1,2,3,4' , '','')

y no:

SELECT val FROM dbo.[fnDelimitedStringToTable](1,2,3,4 , '','')