Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如果存在条件,如何插入到表中?_Sql_Sql Server - Fatal编程技术网

Sql 如果存在条件,如何插入到表中?

Sql 如果存在条件,如何插入到表中?,sql,sql-server,Sql,Sql Server,我是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] FO

我是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,15级,状态1,第3行 INSERT语句中的列少于values子句中指定的值。values子句中的值数必须与INSERT语句中指定的列数匹配。 "

我想要的结果是

MasterCustomerID    CustomerBaseID
    1                     515
    1                     516
    1                     518
    1                     519
    1                     520
    2                     NULL
    2                     NULL

有关在此

中使用INSERT INTO的详细信息有时Sql server在单个查询中插入多条记录时显示错误…请尝试以下操作:

插入SMEC_ODS.dbo.ODSMasterCustomerLink (主客户ID、客户SEID) 价值观(1515)

插入SMEC_ODS.dbo.ODSMasterCustomerLink (主客户ID、客户SEID) 价值观(1516)

插入SMEC_ODS.dbo.ODSMasterCustomerLink (主客户ID、客户SEID) 价值观(1517)

插入SMEC_ODS.dbo.ODSMasterCustomerLink (主客户ID、客户SEID) 价值观(1518)

插入SMEC_ODS.dbo.ODSMasterCustomerLink (主客户ID、客户SEID) 价值观(1519)

插入SMEC_ODS.dbo.ODSMasterCustomerLink (主客户ID、客户SEID) 价值观(1520)

插入SMEC_ODS.dbo.ODSMasterCustomerLink (主客户ID、客户SEID) 价值观(1521)

插入SMEC_ODS.dbo.ODSMasterCustomerLink (主客户ID、客户SEID)
values(1522)

错误消息不是很明显吗?这就是如何进行多次插入的方法-
插入到#SQLAuthority(ID,Value)值中(1,'First');插入#SQLAuthority(ID,Value)值(2,'秒');插入#SQLAuthority(ID,Value)值(3,'第三')你不是在寻找
更新吗?我是新加入sql server的。。让我在StackOverflow中查找与更新相关的问题,它说Msg 102,级别15,状态1,第6行“,”附近的语法不正确。您使用哪个版本的SQL Server?它是什么:如果MasterCustomerID=1?MasterCustomerID是一个变量?
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)