Sql server 在没有标识列的表之间复制数据
我有两个表,需要将数据从SRCServiceUsers复制到客户端 每次运行时,我都会得到以下信息: 违反主键约束 “PK_客户”。无法插入重复项 输入对象“dbo.Clients”。这个 声明已终止。这个 主键ClientId字段不是 标识列,因此需要 填充物 到目前为止,我有以下几点Sql server 在没有标识列的表之间复制数据,sql-server,tsql,Sql Server,Tsql,我有两个表,需要将数据从SRCServiceUsers复制到客户端 每次运行时,我都会得到以下信息: 违反主键约束 “PK_客户”。无法插入重复项 输入对象“dbo.Clients”。这个 声明已终止。这个 主键ClientId字段不是 标识列,因此需要 填充物 到目前为止,我有以下几点 insert into Clients(ClientID, Title, Forenames, FamilyName, [Address], Town, County,
insert into Clients(ClientID, Title, Forenames, FamilyName,
[Address], Town, County, PostCode,
PhoneNumber, StartDate)
SELECT (Select Max(Clients.ClientID)+ 1,
SRCServiceUsers.Title,
SRCServiceUsers.[First Names],
SRCServiceUsers.Surname,
--BUILD UP MUITIPLE COLUMNS
SRCServiceUsers.[Property Name] + ', ' + SRCServiceUsers.Street + ', '
+ SRCServiceUsers.Suburb as [Address],
SRCServiceUsers.Town,
SRCServiceUsers.County,
SRCServiceUsers.Postcode,
SRCServiceUsers.Telephone,
SRCServiceUsers.[Start Date]
FROM
srcsERVICEuSERS
插入数据时,如何自动递增PK字段-CLientID
非常感谢
Andrew如果您只需要任意递增的数字,
ClientID
为什么不是一个标识列?
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION
DECLARE @MaxClientId INT
SELECT @MaxClientId = MAX(ClientID) /*SERIALIZABLE will prevent any inserts above this*/
FROM Clients
INSERT INTO Clients(....)
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 0)) + @MaxClientId...
FROM srcsERVICEuSERS
COMMIT