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

我有这样一张桌子:

create table1 (field1 int, field2 int default 5557, field3 int default 1337, field4 int default 1337) 

我想插入一个具有field2和field4的默认值的行。

我已经尝试insert into table1 values (5,null,10,null)但它不起作用, ISNULL(field2,default)也不起作用。

当我插入一行时,如何告诉数据库使用列的默认值?

只是不要在插入语句中包含要使用默认值的列。 例如:

 INSERT INTO table1 (field1, field3) VALUES (5, 10); 

…将采用field2field4的默认值,并将5分配给field1 ,将10分配给field3

最好的做法是列出你的列,这样你独立于表的变化(新的列或列顺序等)

 insert into table1 (field1, field3) values (5,10) 

但是,如果您不想这样做,请使用DEFAULT关键字

 insert into table1 values (5, DEFAULT, 10, DEFAULT) 

像这样尝试

 INSERT INTO table1 (field1, field3) VALUES (5,10) 

那么field2和field4应该有默认值。

最好的方法是:

 insert your_table default values 

如果你的列不应该包含NULL值,你需要定义列为NOT NULL ,否则在NULL传递将被使用,而不是默认的,不会产生错误。

如果您没有向这些字段传递任何值(这要求您指定您想要使用的字段),则会使用默认值:

 INSERT INTO table1 (field1, field3) VALUES (5,10) 

要插入默认值,您应该省略它们,如下所示:

 Insert into Table (Field2) values(5) 

如果已定义,所有其他字段将为空或其默认值。

 CREATE PROC SP_EMPLOYEE --By Using TYPE parameter and CASE in Stored procedure (@TYPE INT) AS BEGIN IF @TYPE=1 BEGIN SELECT DESIGID,DESIGNAME FROM GP_DESIGNATION END IF @TYPE=2 BEGIN SELECT ID,NAME,DESIGNAME, case D.ISACTIVE when 'Y' then 'ISACTIVE' when 'N' then 'INACTIVE' else 'not' end as ACTIVE FROM GP_EMPLOYEEDETAILS ED JOIN GP_DESIGNATION D ON ED.DESIGNATION=D.DESIGID END END