I have a function which will return integer values from comma delimited string , It takes two parameters (@string nvarchar(4000), @delimiter char(1)). So the problem is if I am using this function inside a dynamic query I am getting error , here is query
declare @ProductIDs varchar(11)
declare @SQL varchar(max)
set @ProductIDs='1,2,3,4'
declare @query varchar(max)
--set @query= @ProductIDs +','+@Delimiter
SELECT @SQL = 'SELECT val FROM dbo.[fnDelimitedStringToTable]('+ @ProductIDs +' , '','')'
Exec(@SQL)
I am getting error Procedure or function dbo.fnDelimitedStringToTable has too many arguments specified.
Use sp_executesql instead. In this case you can pass arguments as parameters.
When you build a dynamic SQL like that, you need to wrap your parameter in double quote
''
This way the SQL statement will be:
and not: