【问题标题】:How to pass a parameter in a SQL query in MS SQL Server from an Excel sheet如何从 Excel 工作表在 MS SQL Server 中的 SQL 查询中传递参数
【发布时间】:2020-05-22 10:29:34
【问题描述】:

假设我在 SQL Server 中有这个查询:

select * 
from Table1 
where Column1 IN ('01061120192T') 

我想从 Excel 工作表的列中传递 Column1 的值。

我可以将单个值传递给here 中提到的查询。但是 IN 的括号可以接受多个值,所以我想从 Excel 工作表的列中传递括号中的 1000 个值。

尝试将多个值传递给参数,如下所示,但这不起作用。

=Sheet1!$G$1:$G$5

【问题讨论】:

  • 实现此目的的一种方法是将 excel 工作表加载到表格中。使用 SSMS 导入向导或 SSIS。然后更改您的查询,如下所示: select * from Table1 where Column1 IN (Select ColumnName from TableName)
  • 我猜这会在我每次运行查询时在服务器上创建一个新表。

标签: sql-server excel microsoft-query


【解决方案1】:

您在 SSIS 中将变量作为 ? 传递,然后在参数映射窗格中定义您的变量。

select * 
from Table1 
where Column1 = ?

然后,您需要转到参数映射窗格并单击添加。在变量名称列中选择您的变量名称。然后输入作为方向。将参数大小保留为 -1。

【讨论】:

    猜你喜欢
    • 2018-08-01
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    相关资源
    最近更新 更多