SQL Server 2016 e 2017, Edição Standard
Preciso inserir dados brutos (de outra tabela) em uma tabela que tenha duas uniqueidentifier
colunas.
Isso requer que eu use SET IDENTITY_INSERT Carrier ON
?
Aqui está a tabela:
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]
O seguinte funcionará sem a IDENTITY_INSERT
opção? (Acho que deveria, mas o DBA aqui é muito casado com a IDENTITY_INSERT
opção.)
INSERT INTO Parkingspace
(ParkingspaceID,AcountID,ParkingspaceType)
SELECT * FROM PRODDBCopy.Parkingspace
IDENTITY_INSERT
é usado apenas para colunas com aIDENTITY
propriedade .UNIQUEIDENTIFIER
é apenas um tipo de dados.Sua instrução de inserção funcionará.
Você sempre pode verificar se há necessidade da inserção de identidade:
Se o acima retornar um registro, basta colá-lo antes de sua instrução de inserção.
As inserções de identidade se aplicam apenas a colunas de identidade no sql server, tentando criar colunas de identidade não numéricas produzirá este erro:
Nenhum identificador exclusivo permitido.