这似乎有伎俩
INSERT INTO CustomerCreditCard (CustomerCode, CreditCardCode, CreditCardDescription, NameOnCard, Address, City, State, PostalCode, Country, ExpMonth, ExpYear, Telephone, Email, IsActive, ResidenceType, UserCreated, DateCreated, UserModified, DateModified, County, StartMonth, StartYear)
SELECT c.CustomerCode,
(SELECT 'CCARD-' + REPLICATE('0', 6 - LEN((SELECT CAST(MAX(CAST(SUBSTRING(ccc.CreditCardCode,7, 6) as INT)) + 1 AS NVARCHAR(MAX)) FROM CustomerCreditCard ccc))) +
(SELECT CAST(MAX(CAST(SUBSTRING(ccc.CreditCardCode,7, 6) as INT)) + 1 AS NVARCHAR(MAX)) FROM CustomerCreditCard ccc)),
'Web Credit Card',
c.CustomerName,
c.Address,
c.City,
c.State,
c.PostalCode,
c.Country,
'Jan',
2025,
c.Telephone,
c.Email,
1,
c.ResidenceType,
'webadmin',
GETDATE(),
'webadmin',
GETDATE(),
c.County,
'Jan',
2010
FROM Customer c
WHERE c.CustomerCode = 'CUST-015056'
请分享序列码和'下一个值'返回。 – artm
我无法得到'NEXT VALUE FOR'的语法正确,所以我无法让它返回一个值。 –
您最好对此数据使用计算列,并只使用常规的int标识。这样你就不必担心计算下一个值。 –