还有另一种方法可以做到这一点。为何不使用函数拆分参数,而不是将值传递给动态查询?
一旦选择了其中一个功能,就可以简单地重写存储过程,而无需在其中创建动态查询。
CREATE PROCEDURE dbo.CitiesGroup @Cities NVARCHAr(Max) -- this are the parametersASBEGIN -- simplified query -- write your complex logic here SELECt ID, City FROM MyTables WHERe City IN (SELECt Item FROM dbo.SplitStrings_CTE(@Cities, N',');)END
用法:
EXEC dbo.CitiesGroup 'London'GOEXEC dbo.CitiesGroup 'London,New York,Paris'GO



