SQL Server 2016および2017、Standard Edition
(別のテーブルからの)生データを、2つのuniqueidentifier
列を持つテーブルに挿入する必要があります。
これにはSET IDENTITY_INSERT Carrier ON
?
ここにテーブルがあります:
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[Parkingspace](
[ParkingspaceId] [uniqueidentifier] NOT NULL,
[AccountId] [uniqueidentifier] NULL,
[ParkingspaceType] [smallint] NULL,
CONSTRAINT [PK_ParkingspaceId] PRIMARY KEY CLUSTERED
(
[ParkingspaceId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
次の作業になりますなしIDENTITY_INSERT
オプション? (私はそうすべきだと思いますが、ここのDBAはIDENTITY_INSERT
オプション。)
INSERT INTO Parkingspace
(ParkingspaceID,AcountID,ParkingspaceType)
SELECT * FROM PRODDBCopy.Parkingspace
あなたは常にアイデンティティ挿入の必要性があるかどうかをチェックできます:
SELECT CONCAT(N'SET IDENTITY_INSERT ', QUOTENAME(OBJECT_SCHEMA_NAME([object_id])), N'.', QUOTENAME( OBJECT_NAME([object_id])), N' ON;')
FROM sys.identity_columns
WHERE [object_id] = OBJECT_ID(table_of_your_interest);
上記でレコードが返された場合は、挿入ステートメントの前に貼り付けてください。
ID挿入は、SQLサーバーのID列にのみ適用され、数値以外のID列を作成しようとすると、次のエラーが発生します。
ID列 'id'は、int、bigint、smallint、tinyint、または10進数または数値のデータ型で、スケールが0で、暗号化されておらず、null不可に制限されている必要があります。
一意の識別子は許可されていません。