【发布时间】:2017-09-09 14:57:14
【问题描述】:
DECLARE @sqlCommand VARCHAR(MAX) DECLARE @NAME varchar (100)
DECLARE @FIRSTROW INT,@LASTROW INT
SET @FIRSTROW =
(SELECT TOP 1 [Id]
FROM [dbo].[TableB]
ORDER BY [Id] DESC) + 1
SET @LASTROW = @FIRSTROW + 4
SELECT @NAME =
(SELECT 'C:\InsertTestdata.txt')
SET NOCOUNT ON;
SET @sqlCommand = 'BULK INSERT [dbo].[TableA] FROM ''' + @NAME + '''
WITH (DATAFILETYPE = ''char'',
FIELDTERMINATOR = '','',
ROWTERMINATOR = '''+CHAR(10)+''',
FIRSTROW = 2,
LASTROW = '''+ @LASTROW +'''
);'
EXEC (@sqlCommand);
执行上述脚本时出现错误 任何人都可以解释在批量插入语句中使用一些变量来给出 Lastrow 和 firstrow 参数的正确方法是什么?
【问题讨论】:
-
I am getting error while executing above script是什么错误? -
Msg 245, Level 16, State 1, Line 8 转换 varchar 值 'BULK INSERT [dbo].[TableA] FROM 'C:\InsertTestData.txt' WITH (DATAFILETYPE = ' char', FIELDTERMINATOR = ',', ROWTERMINATOR = ' ', FIRSTROW = '' 到数据类型 int。
-
尝试将查询中的所有整数转换为 varchar ..ex:`2`
标签: sql-server sql-server-2012-express