SQL中的default怎么使用啊
1、在创建表的时候,给字段添加的默认值约束,没有约束名称。
如:CREATE TABLE "dbo"."Test" ( id int PRIMARY KEY, sex varchar(10) DEFAULT ('boy'), name varchar(40), age int DEFAULT ((1))) 。
注意: 此时默认值约束,没有约束名称。DMBS会自动的给添加一个“默认值约束名称”,varchar类型和int类型在DEFAULT 中分别用‘’和()把value值包起来。
2、在创建表之后,给字段添加的默认值约束。
如:alter table [dbo].[Test] add constraint Test_name_Default Default('Tom') for baseCurrencyCode
注意:此时,必须编写一个约束名称,防止重名。
3、修改字段原有的默认值约束。
如:declare @csname varchar(100) set @csname= '' select @csname=[name] from sysobjects where exec('alter table [dbo].[Test] add constraint ' + @csname + ' Default((18)) for age')。
注意:默认值约束,不能修改。必须先drop之后再add drop的时候,必须知道当前“默认值约束的名称”。通过上面的sql可以查出Test表的age字段所绑定的“默认值约束名称”,才可以drop。
扩展资料:
DEFAULT 值只有当一个字段没有在 INSERT 或 MERGE 中指定值,或者使用了 DEFAULT 关键字时才会使用。如果不显式地声明一个 DEFULAT 值,SQL将隐式地将默认值定义为 NULL,而且 DEFAULT 关键字也是这样。
在SQL中,可以在 DEFAULT 子句中使用诸如 SYSDATE 或 CURRENT_TIMESTAMPE 之类的伪字段。
参考资料来源:
推荐于2017-10-10 · 知道合伙人软件行家
例如:
例如,下面SQL语句创建一个新的表名为CUSTOMERS,并增加了5列。 SALARY列设置为5000.00默认情况下,这样的情况下,INSERT INTPO声明并没有提供此列的值,则默认情况下,该列将被设置为5000.00。
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2) DEFAULT 5000.00,
PRIMARY KEY (ID)
);
如果CUSTOMERS表中已经被创建,然后添加一个DFAULT约束的SALARY列默认值,那么需要写一个类似下面的语句:
ALTER TABLE CUSTOMERS
MODIFY SALARY DECIMAL (18, 2) DEFAULT 5000.00;
删除默认约束:
要删除一个DEFAULT约束,请使用下面的SQL语句:
ALTER TABLE CUSTOMERS
ALTER COLUMN SALARY DROP DEFAULT;
2017-10-10 · 知道合伙人软件行家
例如:
例如,下面SQL语句创建一个新的表名为CUSTOMERS,并增加了5列。 SALARY列设置为5000.00默认情况下,这样的情况下,INSERT INTPO声明并没有提供此列的值,则默认情况下,该列将被设置为5000.00。
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2) DEFAULT 5000.00,
PRIMARY KEY (ID)
);
如果CUSTOMERS表中已经被创建,然后添加一个DFAULT约束的SALARY列默认值,那么需要写一个类似下面的语句:
ALTER TABLE CUSTOMERS
MODIFY SALARY DECIMAL (18, 2) DEFAULT 5000.00;
删除默认约束:
要删除一个DEFAULT约束,请使用下面的SQL语句:
ALTER TABLE CUSTOMERS
ALTER COLUMN SALARY DROP DEFAULT;
2013-07-24