DECLARE @path text;
SET @path = 'c:\bulk'
BULK INSERT [HumanResources].[Employee] FROM -- I Want to use the variable here !!
WITH (
CHECK_CONSTRAINTS,
CODEPAGE='ACP',
DATAFILETYPE='widechar',
FIELDTERMINATOR='\t',
ROWTERMINATOR='\n',
KEEPIDENTITY,
TABLOCK
);
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
DECLARE @path nvarchar(2000);
SET @path = 'c:\bulk.(extension)';
DECLARE @sql NVARCHAR(MAX) =
'''BULK INSERT [HumanResources].[Employee] FROM' + @path + '
WITH (
CHECK_CONSTRAINTS,
CODEPAGE=''ACP'',
DATAFILETYPE=''widechar'',
FIELDTERMINATOR=''\t'',
ROWTERMINATOR=''\n'',
KEEPIDENTITY,
TABLOCK
)'''
EXECUTE sp_executesql(@sql)
回答2:
How about this query? Uses dynamic query to execute query. Just aware of the single quotes.
DECLARE @path nvarchar(2000);
DECLARE @sql nvarchar(2000);
SET @path = 'c:\bulk.txt'
set @sql = 'BULK INSERT [HumanResources].[Employee] FROM ''' + @path + ''' WITH (CHECK_CONSTRAINTS, CODEPAGE=''ACP'',
DATAFILETYPE=''widechar'',
FIELDTERMINATOR=''\t'',
ROWTERMINATOR=''\n'',
KEEPIDENTITY,
TABLOCK
)'
print @sql
exec sp_executesql @sql