sql-server - 如何将可变数量的参数传递给 SQL Server 存储过程?

标签 sql-server stored-procedures parameters

我将 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/

相关文章:

SQL Server 选择排名数据的第一个实例

sql - 使用 INNER JOIN 更新 SQL Server 中的多个表

MySQL 会记住某处的存储过程,即使我删除了模式

MySQL 存储函数出现故障,但作为独立查询工作

r - 在 R 中用循环和 if else 解算 SIR 模型

android - 如何在改造中修复 IOException

sql - 如何通过生成 id SSIS 将表拆分为 Master/Detail?

SQL Server : should I use information_schema tables over sys tables?

.htaccess - Htaccess - 多个参数

Perl::Dancer 如何将文件路径作为参数包含在 URI 中