我正在使用XML解析将多个参数值传递给存储过程。
创建存储过程的代码:
CREATE PROCEDURE[dbo].[test] @PARAM varchar(max)
AS
DECLARE @PARAMXML AS XML
SET @PARAMXML = cast(('<A>'+replace(@PARAM,',' ,'</A><A>')
+'</A>') AS XML)
调用参数的代码:
WHERE Field IN (SELECT A.value('.','varchar(max)') FROM @PARAMXML.nodes('A') AS FN(A)
执行参数的代码:
exec dbo.test 'Hello, Goodbye, Welcome'
这只会导致“你好”。被传递和执行没有错误。不再处理再见和欢迎。这是为什么?我用这个例子: https://raresql.com/tag/sql-server-passing-multiple-values-through-one-parameter-in-a-stored-procedure/