エラーの取得に関する多くの投稿があります。
「IDENTITY_INSERT が ON に設定されている場合、またはレプリケーション ユーザーが NOT FOR REPLICATION ID 列に挿入している場合は、テーブルの ID 列に明示的な値を指定する必要があります」
問題は常に、ユーザーが次のようなことをしようとしていることです。
insert into table1 select * from table2
私の場合、列名を指定していますが、それでもエラーが発生します。
編集: ID 列をキャプチャしようとしている理由は、一時テーブルが最終的に他のデータを に挿入するときのテスト バージョンであるためRC_Incoming
です。私のアルゴリズムは次のとおりです。
TempTable
のクローンとして作成RC_Incoming
- 他のテーブルからデータを挿入します
TempTable
(RecordID
自動生成させます) - すべてが正しく見えることを確認してください
- OK の場合は、realz に対して実行します -- に挿入し
RC_Incoming
ます。
コード:
<cfquery datasource="#LOCAL.DataSource#">
IF OBJECT_ID('tempdb.dbo.##TempTable') IS NOT NULL
DROP TABLE ##TempTable
ELSE
DBCC CHECKIDENT ([##TempTable], RESEED, 1);
CREATE TABLE ##TempTable
(
[RecordID] [INTEGER] IDENTITY NOT NULL,
[StudentID] [varchar](15) NOT NULL,
[CourseNumber] [varchar](6) NOT NULL,
[CompDateTime] [datetime] NOT NULL,
[SystemInfo] [varchar](250) NULL,
[WriteTime] [datetime] default GETDATE() NULL,
PRIMARY KEY CLUSTERED
(
[StudentID], [CourseNumber], [CompDateTime]
)
WITH
(
PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = ON, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON
)
)
</cfquery>
<cfquery datasource="#LOCAL.DataSource#">
SET IDENTITY_INSERT ##TempTable ON
INSERT INTO ##TempTable
(
RecordID
,StudentID
,CourseNumber
,CompDateTime
,SystemInfo
,WriteTime
)
SELECT RecordID
,StudentID
,CourseNumber
,CompDateTime
,SystemInfo
,WriteTime
FROM RC_Incoming
</cfquery>
私はまだ得ています:
データベース クエリの実行中にエラーが発生しました。[Macromedia][SQLServer JDBC ドライバー][SQLServer]IDENTITY_INSERT が ON に設定されている場合、またはレプリケーション ユーザーが NOT FOR REPLICATION ID 列に挿入している場合、テーブル '#TempTable___________________________________________________________________________________________00000000066E' の ID 列に明示的な値を指定する必要があります。
RC_Incoming
既にデータがあり、まったく同じ構造を持っています (SQL Server Management Studio で行われます):
CREATE TABLE dbo.[RC_Incoming]
(
[RecordID] [INTEGER] IDENTITY NOT NULL,
[StudentID] [varchar](15) NOT NULL,
[CourseNumber] [varchar](6) NOT NULL,
[CompDateTime] [datetime] NOT NULL,
[SystemInfo] [varchar](250) NULL,
[WriteTime] [datetime] default GETDATE() NULL,
PRIMARY KEY CLUSTERED
(
[StudentID], [CourseNumber], [CompDateTime]
)
WITH
(
PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = ON, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
) ON [PRIMARY]