将多个值传递给SQL Server 2012中的单个参数

时间:2013-04-01 08:44:34

标签: sql sql-server sql-server-2012

再次需要你的帮助。

想知道有没有办法在SQL Server 2012中将多个值传递给单个参数?

例如,

id     item_name  item_code
    1      boots       23
    2       hat        5
    3      dress       11

让我们说在上面的例子中,我有参数@inp_code

怎么办,所以当我将“23”和“11”传递给参数时,我可以得到下面的输出:

id      item_name   item_code
   1       boots        23
   3       dress        11

1 个答案:

答案 0 :(得分:1)

以下是MSDN documentation

的链接

整体概念就是这样。

  1. 您将创建一个新的表类型(在/ Programmability / Types / User-Defined Table Types中的SSMS中列出。这将 看起来像一个普通的SQL表,除了标题是不同的(CREATE TYPE AS TABLE而不是CREATE TABLE)
  2. 创建表格类型后,您可以在您的表格上定义参数 表类型的存储过程。
  3. 在SQL脚本中,您定义表类型INSERT的变量 进入它,并将其传递给存储过程。
  4. 在存储过程中,您现在可以像访问一样访问参数 table(意思是它是行集,而不是单个值,所以请想一想 基于集合,而非单一价值)
  5. 一个注意事项 - 直接通过ADO.NET不支持这些。您需要创建一个脚本,将多个值插入表变量,将其传递给存储过程,并从您的编程语言中执行整个脚本。