小编Joe*_*Joe的帖子

如何在 SQL Server 中对具有索引视图的表使用 bcp in

我正在使用 SQL Server 2017,并希望在脚本中使用“bcp in”来填充多个数据库中的表。我无法将数据导入到具有索引视图的表中。以下是重现我的问题的 MCVE:

  1. 运行本文末尾的脚本,用两个表、一个索引视图和一些数据填充测试数据库。

  2. 运行bcp out将表Table1中的测试数据导出到文件中:

bcp [dbo].[Table1] out .\Table1.bcp -S "localhost" -d TestDB -T -k -N
Run Code Online (Sandbox Code Playgroud)
  1. 删除表1中的测试数据:
DELETE FROM [dbo].[Table1]
Run Code Online (Sandbox Code Playgroud)
  1. 尝试使用bcp in将数据导入到 Table1 中:
bcp [dbo].[Table1] in .\Table1.bcp -S "localhost" -d TestDB -T -k -N
Run Code Online (Sandbox Code Playgroud)

结果:失败并显示错误消息INSERT failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'...

注意:如果我在视图上删除索引 [ix_v1],这将会成功:仅当表被索引视图引用时才会出现该问题。

  1. 尝试使用bcp in和 -q 开关将数据导入到 Table1 :
bcp [dbo].[Table1] in .\Table1.bcp -S "localhost" -d TestDB -T -k -N -q
Run Code Online (Sandbox Code Playgroud)

结果:失败并显示错误消息Invalid object …

sql-server bcp

4
推荐指数
1
解决办法
624
查看次数

标签 统计

bcp ×1

sql-server ×1