我有一个完全恢复模式的数据库。
下周需要完成一百万行的计划插入。
为了不增加日志大小,我被告知有 2 个选项。
选项 1 是切换到批量模型,执行插入,然后切换到完整模型。这是完全有道理的。
选项 2 是切换到简单恢复模式,执行插入,然后切换到完整模式。这是真的吗?简单恢复模型在批量插入期间不会增加日志大小吗?我知道每个检查点都会清除日志,但是在批量插入期间会发生检查点吗?
我有一个文本文件,我想将其插入到数据库的表中。
我的查询如下所示:
BULK INSERT myDepartment
FROM 'C:\myDepartment-c-t.txt'
WITH (
DATAFILETYPE = 'char',
FIELDTERMINATOR = '\t', -- default terminator
ROWTERMINATOR = '\n'
);
Run Code Online (Sandbox Code Playgroud)
在执行它时,SQL Server Management Studio 2008 给出以下错误:
BULK INSERT myDepartment
FROM 'C:\myDepartment-c-t.txt'
WITH (
DATAFILETYPE = 'char',
FIELDTERMINATOR = '\t', -- default terminator
ROWTERMINATOR = '\n'
);
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索,发现 SQL Server 2008确实支持BULK INSERT. 谁能告诉我我错过了什么?
我有一个包含数亿行的大型平面文件。我只想插入其中的前 1000 个。我怎样才能做到这一点?
我有一个csv包含 350,000 行的文件。想要按照与csv文件中相同的顺序将数据插入到临时表中。我正在尝试BULK INSERT使用:
BULK INSERT ##AllRows
FROM @FilePath
WITH
(
FIELDTERMINATOR = '\n'
)
Run Code Online (Sandbox Code Playgroud)
不幸的是,BULK INSERT按随机顺序插入数据。我每次执行的标题都在不同的行中。我在 SQL Server 2016 上运行它。是否有可能在旧版本的 SQL Server 中顺序方式有所不同?
使用该FIRSTROW选项不会将标题识别为文件的第一行。文件没有任何我们可以订购的列。在文件中,标题始终位于第一行。
这可能是巧合,但即使如此FIRSTROW=2,我的标题也有可能出现在表格中。我查了一下。看起来csv文件包含的行数越多,插入到表中的机会就越随机。
我正在尝试将BULK INSERTcsv 文件发送到我的 SQL Server。
使用我在这个 SO question上找到的代码,我跑了:
BULK INSERT Temp
FROM 'c:\csv\student.csv '
WITH (
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FIRSTROW = 2
)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
消息 208,级别 16,状态 82,第 1 行
无效的对象名称 'Temp'。
我能做什么?