SQL 服务器 - "must declare scalar variable" 错误消息,即使我刚刚声明了它

SQL Server - "must declare scalar variable" error message even though I have just declared it

我正在尝试在 SQL Server 2014 中编写一个脚本,该脚本导入一系列文件,其中日期在文件名中。我将 运行 每天都这样做,每天导出文件名中都有相应的日期。我想将日期设置为一个变量,以避免必须通过脚本并将日期键入导入语句的每个文件路径(每天大约有 20 个不同的报告)。

这是我现在拥有的:

DECLARE @date VARCHAR(50)
DECLARE @engagements VARCHAR(MAX)
DECLARE @findings VARCHAR(MAX)

SET @date = '20180708'
GO

SET @engagements = 'bulk insert dbo.engagements
from ''\sanascl\users$\MG3976\My Documents\Report Exports\' + @date + '-Engagements_sqltest.txt''
WITH
    (
    FIRSTROW = 2,
    fieldterminator = ''\t'',
    ROWTERMINATOR = ''\n''
    )
'
GO

SET @findings = 'bulk insert dbo.findings
from ''\sanascl\users$\MG3976\My Documents\Report Exports\' + @date + '-findings_sql.txt''
WITH
    (
    FIRSTROW = 2,
    fieldterminator = ''\t'',
    ROWTERMINATOR = ''\n''
    )
'
GO

EXEC(@engagements)
GO
EXEC(@findings)
GO

然而,当我 运行 这个我得到

Msg 137, Level 15, State 2, Line 8
Must declare scalar variable "@date"

并且对于调用 @date 变量的每一行都会重复该错误消息。此外,其他变量在其各自的 Exec 语句中重复错误。

我已经尝试重新排列声明和设置语句,但没有任何效果 - 请帮助!

GO in SQL 服务器执行批处理并清除您的变量。

DECLARE @testing INT = 0

SELECT @testing 

GO 

SELECT @testing

删除它,它将起作用

DECLARE @testing INT = 0

SELECT @testing 
SELECT @testing