Sql-Server
是否需要“SET IDENTITY_INSERT”才能將任意 GUID 插入你問__你和d_entif我__你n一世q你和一世d和n噸一世F一世和runiqueidentifier柱子?
SQL Server 2016 和 2017,標準版
我需要將原始數據(來自另一個表)插入一個有兩
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
IDENTITY_INSERT
僅用於具有IDENTITY
屬性的列。
UNIQUEIDENTIFIER
只是一種數據類型。您的插入語句將起作用。
您可以隨時檢查是否需要身份插入:
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);
如果上面返回一條記錄,只需將其粘貼到您的插入語句之前。