【发布时间】:2014-05-30 18:42:52
【问题描述】:
我在两个不同的数据库CP 和PP 中有Locale_Code 表
这是我的表格的插入脚本
CREATE TABLE [dbo].[LOCALE_CODE](
[id] [bigint] IDENTITY(1,1) NOT NULL,
[active] [bit] NOT NULL,
[code] [nvarchar](4000) NULL,
[created_at] [datetime] NULL,
[created_by] [nvarchar](4000) NULL,
[display_name] [nvarchar](4000) NULL,
[updated_at] [datetime] NULL,
[updated_by] [nvarchar](4000) NULL,
[read_permission] [nvarchar](4000) NULL,
PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
我正在尝试将 PP.dbo.LOCALE_CODE 中的所有行插入到 CP.dbo.LOCALE_CODE 中,如下所示
SET IDENTITY_INSERT CP.dbo.LOCALE_CODE ON
insert into CP.[dbo].[LOCALE_CODE] select * from PP.dbo.LOCALE_CODE
但是我遇到了错误
只有在使用列列表并且 IDENTITY_INSERT 为 ON 时,才能为表 'CP.dbo.LOCALE_CODE' 中的标识列指定显式值。
我什至尝试如下批量插入
BULK INSERT CP.[dbo].[LOCALE_CODE] from 'C:\locales.csv'
with (fieldterminator = ',', rowterminator = '\n' )
go
但是我遇到了错误
当 IDENTITY_INSERT 设置为 ON 或复制用户插入 NOT FOR REPLICATION 标识列时,必须为表 'LOCALE_CODE' 中的标识列指定显式值。
有人可以帮助修复枯萎的 BULK 插入或直接从 PP.Locale_Code 插入到 PP.Locale_Code 吗?
【问题讨论】:
-
请密切注意错误消息的内容。 “表 'CP.dbo.LOCALE_CODE' 中标识列的显式值只能在使用列列表且 IDENTITY_INSERT 为 ON 时指定。”您没有使用列列表。
标签: sql sql-server sql-server-2008