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
我正在尝试在 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