我有一个简单的数据导入脚本,我在MSSQL中运行。如果我静态分配要导入的数据文件名,它可以很好地工作。
BULK
INSERT TRACKED_IMPORT
FROM 'C:\SQLIMPORT\DATAFILE.CSV'
WITH (FIRSTROW = 2, FIELDTERMINATOR = ';', ROWTERMINATOR = '0x0a')
但是,我想使用变量而不是静态文件名。像这样:
DECLARE @IMPORTFILENAME VARCHAR(30) = 'C:\SQLIMPORT\DATAFILE.CSV';
BULK
INSERT TRACKED_IMPORT
FROM @IMPORTFILENAME
WITH (FIRSTROW = 2, FIELDTERMINATOR = ';', ROWTERMINATOR = '0x0a')
当我这样做时,我收到以下错误:
Msg 102,Level 15,State 1,Line 23 “@IMPORTFILENAME”附近的语法不正确。
Msg 319,Level 15,State 1,Line 24 关键字'with'附近的语法不正确。如果此语句是公用表表达式,xmlnamespaces子句或更改跟踪上下文子句,则必须以分号结束前一个语句。
有没有办法允许变量文件名?