如何在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);
…将采用field2
和field4
的默认值,并将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