我是sql server的新手,我创建了一个简单的表
IF EXISTS (SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[ODSMasterCustomerLink]')
AND type in (N'U'))
DROP TABLE [ODSMasterCustomerLink]
Go
Create Table ODSMasterCustomerLink
(MasterCustomerID [int] FOREIGN KEY REFERENCES
ODSMasterCustomer(MasterCustomerID),
CustomerBaseID [int] FOREIGN KEY REFERENCES
ODSCustomerBase (CustomerBaseID))
select * from ODSMasterCustomerLink
这些是结果
MasterCustomerID CustomerBaseID
1 NULL
2 NULL
现在我想使用下面的脚本在CustomerBaseID列中插入多个值,它表示我的insert语句错误。
If MasterCustomerID = 1
insert into SMEC_ODS.dbo.ODSMasterCustomerLink
(CustomerBaseID)
values(515, 516, 517, 518, 519, 520)
错误消息是
Msg 110,Level 15,State 1,Line 3 INSERT语句中的列少于VALUES子句中指定的值。 VALUES子句中的值数必须与INSERT语句中指定的列数相匹配。 “
我想要的结果就是这个
MasterCustomerID CustomerBaseID
1 515
1 516
1 518
1 519
1 520
2 NULL
2 NULL
答案 0 :(得分:2)
insert into SMEC_ODS.dbo.ODSMasterCustomerLink
(MasterCustomerID,CustomerBaseID)
values(1,515), (1,516), (1,517), (1,518), (1,519), (1,520), (1,521), (1,522)
有关在此article
中使用INSERT INTO的更多信息答案 1 :(得分:1)
有时Sql server在单个查询中插入多个记录时显示错误...试试这个:
插入SMEC_ODS.dbo.ODSMasterCustomerLink (MasterCustomerID,CustomerBaseID) 值(1515)
插入SMEC_ODS.dbo.ODSMasterCustomerLink (MasterCustomerID,CustomerBaseID) 值(1516)
插入SMEC_ODS.dbo.ODSMasterCustomerLink (MasterCustomerID,CustomerBaseID) 值(1517)
插入SMEC_ODS.dbo.ODSMasterCustomerLink (MasterCustomerID,CustomerBaseID) 值(1518)
插入SMEC_ODS.dbo.ODSMasterCustomerLink (MasterCustomerID,CustomerBaseID) 值(1519)
插入SMEC_ODS.dbo.ODSMasterCustomerLink (MasterCustomerID,CustomerBaseID) 值(1520)
插入SMEC_ODS.dbo.ODSMasterCustomerLink (MasterCustomerID,CustomerBaseID) 值(1521)
插入SMEC_ODS.dbo.ODSMasterCustomerLink (MasterCustomerID,CustomerBaseID) 值(1522)