3

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

[Microsoft] [ODBC SQL Server Driver] 参数号无效

[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 

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

更新

正如David Vandenbos所建议的那样,我已经找到了一种通过 VBA 的方法。我仍然很想知道这是否可以在没有 VBA 的帮助下完成。

4

1 回答 1

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

于 2015-04-15T18:29:47.507 回答