将参数传递给SQL Server上的MS Query中的临时变量

时间:2013-04-04 18:46:21

标签: sql-server excel sql-server-2005 excel-2007

我使用了here提到的Microsoft查询创建了一个参数查询。但是当我想将参数传递给临时变量并创建表变量并编辑它们以获得所需的结果而不是做10到15个连接并在where子句中提到参数时我会得到错误

  

[Microsoft] [ODBC SQL Server驱动程序]无效的参数编号

  

[Microsoft] [ODBC SQL Server驱动程序]无效的描述符索引

我的代码看起来像这样,它与许多临时表和临时变量很复杂

BEGIN
    SET NOCOUNT ON

    DECLARE @sDate DATETIME, @eDate DATETIME; --used in many places to manipulate temp table

    SET @sdate = ?
    SET @edate = ?

    DECLARE @Temptable TABLE (Variable1 INT ,...... VariableN DECIMAL(18,4));

    Manipulate @temptable

    Select * from @Temptable 
END 

如何在Excel 2007中为SQL Server 2005中的数据库将参数传递给临时变量?我没有权限在数据库中创建存储过程并将它们作为参数传递给它。

更新

我已根据David Vandenbos的建议找到了通过VBA的方法。我仍然很想知道这是否可以在没有VBA的帮助下完成。

1 个答案:

答案 0 :(得分:0)

您可以在声明变量之前添加SET NOCOUNT ON。我在Excel 2010中使用Microsoft Query和SQL Server 2005完美地工作。

SET NOCOUNT ON
DECLARE @VAR1 VARCHAR(4)
SET @VAR1 = '1234'
SELECT @VAR1

https://social.msdn.microsoft.com/Forums/office/en-US/d8003854-d11a-44f7-960c-a042347736d7/microsoft-query-cannot-run-sql-code-with-a-tsql-variables-in-it?forum=exceldev