我正在尝试创建具有自动增量的临时表并插入数据。该表已正确创建,但是我无法导入数据。
如果我只是省略ID表,则它可以正常工作,但是我需要让temp表具有一个我们可以引用的ID。
我得到的错误是:
4832,第16级,状态1,第1行
批量加载:数据文件中遇到意外的文件结尾。消息7399,第16级,状态1,第1行
链接服务器“(null)”的OLE DB提供程序“ BULK”报告了一个错误。提供者未提供有关该错误的任何信息。
我的代码:
SET @strFileName = 'file.txt';
SET NOCOUNT OFF;
CREATE TABLE #UUID
(
id INT NOT NULL IDENTITY PRIMARY KEY,
cuuid NVARCHAR(50) COLLATE DATABASE_DEFAULT NULL
);
SET @strSQL = 'BULK INSERT #UUIDFROM ''' + @strFileName + ''' WITH (ROWTERMINATOR =''\n'' )';
EXEC @intErr = sp_executesql @strSQL;
我想知道它是否尝试插入id行而不是提示行中...
有什么想法吗?
答案 0 :(得分:0)
如果问题是数据库中的额外列不在数据文件中,则解决方案是视图。 ,我认为您无法使用临时表来做到这一点。
带有常规表:
CREATE TABLE temp_UUID (
id INT NOT NULL IDENTITY PRIMARY KEY,
cuuid NVARCHAR(50) COLLATE DATABASE_DEFAULT NULL
);
CREATE VIEW temp_UUID_v as
SELECT cuuid
FROM temp_UUID;
SET @strSQL = 'BULK INSERT temp_UUID_V FROM ''' + @strFileName + ''' WITH ( ROWTERMINATOR =''\n'' )';
EXEC @intErr= sp_executesql @strSQL;