我将 SQL Server 2005 用于我的小型 Web 应用程序。我想将参数传递给 SP 。 但有一个条件。可以不时更改的参数数量。 想一想,这次我传递姓名和地址,下次我传递姓名、地址,
这个参数范围可能是1-30,
最佳答案
您使用默认参数声明该过程,并使用命名参数而不是位置参数调用它:
CREATE PROCEDURE usp_myProcedure
@name varchar(100) = '',
@surname varchar(100) = '',
@address varchar(100) = ''
AS
BEGIN
...
END
从 T-SQL 调用它:
exec usp_myProcedure @name='John', @surname = 'Doe';
exec usp_myProcedure @name='Jane', @address = '123 Anystreet';
从 C# 调用它:
SqlCommand cmd = new SqlCommand('usp_MyProcedure', ...);
cmd.CommandType = commandtype.StoredProcedure;
cmd.Parameters.AddWithValue('@name', 'John');
cmd.Parameters.AddWithValue('@surname', 'Doe');
关于sql-server - 如何将可变数量的参数传递给 SQL Server 存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2485526/