我有一个简单的存储过程,其中有参数。
CREATE Procedure GetSupplierForTesting
(@SupplierId INT)
AS
SELECT SuppLabel
FROM Supplier
WHERE Supplier.SupplierId = @SupplierId
我可以在另一个存储过程中使用exec命令来调用它,就像这样:
exec GetSupplierForTesting @SupplierId = 10
我看到一篇文章解释了如何使用 sp_executesql
比使用 exec
更快。我的问题是,我不知道如何使用 sp_executesql
调用具有参数的存储过程。我已经尝试了以下代码:
DECLARE @SupplierId INT = 10;
EXEC sp_executesql N'GetSupplierForTesting', N'@SupplierId INT', @SupplierId
但是我遇到了一个错误:
'GetSupplierForTesting' 这个过程或函数需要参数 '@SupplierId',但是未提供该参数。
EXEC spName
运行存储过程,性能注释仅与EXEC <SQL string here>
使用的EXEC
相关 - 例如,如果您将SQL语句构建为字符串或者在变量中有一个过程名称。 - Alex K.