使用默认约束进行大容量插入



我有两个表tblPerson和tblGender

tblPerson中的字段'GenderID'是tblGender中字段'ID'(主)的外键

这里有一个默认的包含

Alter Table tblPerson
Add constraint DF_tblPerson_GenderID
Default 4 for GENDERID 

现在插入查询是

insert into tblPerson (ID,[Name],EmailID,GenderID)values
(4,'Riya','riya@.com',2),
(5,'Raj','raj@.com',3),
(6,'Tisha','tisha@.com',2),
(7,'Stephen','stephen@.com'); // here im getting the error 

现在你可以看到,在第7页中,我试图在性别栏中不添加任何内容,我认为它将被视为默认约束

但是它给了我错误'表值构造函数中每行的列数必须相同'

这是一个SQL Server特有的答案。您应该用实际的RDBMS标记您的问题。你的代码看起来像带有[]的T-SQL,但谁知道....

由于无法更改列列表,因此需要使用default关键字来触发默认值

INSERT INTO tblPerson (ID, [Name], EmailID, GenderID) VALUES
(4, 'Riya', 'riya@.com', 2),
(5, 'Raj', 'raj@.com', 3),
(6, 'Tisha', 'tisha@.com', 2),
(7, 'Stephen', 'Stephen@.com',default)

请看这里的例子。这是一个sql问题的T-SQL答案。

如何在SQL表中插入默认值?

我在T-SQL文档中找不到一个明确的例子。这个描述很模糊

https://learn.microsoft.com/en-us/sql/t-sql/statements/insert-transact-sql?view=sql-server-ver16

最新更新