我有一个用于选择行的存储过程。我想像这样动态地传递一个参数来过滤行:
Create Procedure CustomerSelectAll
@FilterExpresion NVARCHAR(MAX)
DECLARE @CMD NVARCHAR(MAX)
SET @CMD = N'SELECT * FROM dbo.Customers '+@FilterExpresion;
EXEC(@CMD)
上面的代码工作正常,但它存在 SQL 注入的风险,所以我希望能够使用任何 WHERE 语句传递多个列,例如:
exec CustomerSelectAll
@FilterExpresion = N' where Name = 'abc' and family = ''xyz'''