介绍
在MSSQL中,可以使用各种函数来设置默认值。默认值是在插入新行时为每个列指定的值。下面将介绍不同的函数和设置默认值的方法。
IDENT_CURRENT函数
IDENT_CURRENT函数用于返回一个表中的标识列的当前值。如果未指定任何参数,则返回当前会话中最后插入的标识列的值。
语法
IDENT_CURRENT ( table_name )
table_name:必需。要返回其当前标识列值的表的名称。
示例
CREATE TABLE Example
(
ID INT PRIMARY KEY IDENTITY(1,1),
Name VARCHAR(100) DEFAULT 'John Doe',
Age INT DEFAULT (YEAR(GETDATE())-1980),
DateOfBirth DATETIME DEFAULT ('19900101')
);
INSERT INTO Example VALUES('Jane Doe', 35, '19750731');
SELECT IDENT_CURRENT('Example') AS CurrentIdentityValue;
上述示例将创建一个名为“Example”的表,其中包含ID、Name、Age和DateOfBirth四个列,每个列都有默认值。然后,将一行数据插入到Example表中,随后使用IDENT_CURRENT函数返回值ID列的当前值。
NEWID函数
NEWID函数用于返回一个唯一的全局标识符(GUID)。GUID是128位数字,用于标识行。使用NEWID函数可以创建一个默认值,它将为新行生成一个唯一的GUID。
语法
NEWID ( )
示例
CREATE TABLE Example
(
ID UNIQUEIDENTIFIER DEFAULT NEWID(),
Name VARCHAR(100) DEFAULT 'John Doe',
Age INT DEFAULT (YEAR(GETDATE())-1980),
DateOfBirth DATETIME DEFAULT ('19900101')
);
INSERT INTO Example (Name, Age) VALUES('Jane Doe', 35);
SELECT * FROM Example;
上述示例将创建一个名为“Example”的表,其中包含ID、Name、Age和DateOfBirth四个列,每个列都有默认值。然后,将一行数据插入到Example表中。注意,在插入新行时,ID列将由NEWID函数生成一个唯一的GUID。
GETDATE函数
GETDATE函数返回当前的系统日期和时间。可以使用它来创建默认值,该默认值将为新行生成当前的系统日期和时间。
语法
GETDATE ( )
示例
CREATE TABLE Example
(
ID INT PRIMARY KEY IDENTITY(1,1),
Name VARCHAR(100) DEFAULT 'John Doe',
Age INT DEFAULT (YEAR(GETDATE())-1980),
DateOfBirth DATETIME DEFAULT (GETDATE())
);
INSERT INTO Example (Name, Age) VALUES('Jane Doe', 35);
SELECT * FROM Example;
上述示例将创建一个名为“Example”的表,其中包含ID、Name、Age和DateOfBirth四个列,每个列都有默认值。然后,将一行数据插入到Example表中。请注意,DateOfBirth列将使用GETDATE函数来创建默认值,它将为新行生成当前的系统日期和时间。
CONVERT函数
CONVERT函数可以将一个数据类型转换为另一个数据类型。可以使用它来将日期和时间从一种格式转换为另一种格式。
语法
CONVERT ( data_type [ ( length ) ], expression [, style ] )
data_type:必需。要转换为的数据类型。
length:可选。转换后数据类型的长度。
expression:要转换的表达式。
style:可选。要用于日期和时间数据转换的样式代码。
示例
CREATE TABLE Example
(
ID INT PRIMARY KEY IDENTITY(1,1),
Name VARCHAR(100) DEFAULT 'John Doe',
Age INT DEFAULT (YEAR(GETDATE())-1980),
DateOfBirth DATETIME DEFAULT (CONVERT(DATETIME, '1990-01-01', 101))
);
INSERT INTO Example (Name, Age) VALUES('Jane Doe', 35);
SELECT * FROM Example;
上述示例将创建一个名为“Example”的表,其中包含ID、Name、Age和DateOfBirth四个列,每个列都有默认值。然后,将一行数据插入到Example表中。请注意,在DateOfBirth列中,使用CONVERT函数将字符串“1990-01-01”转换为DATETIME数据类型。
应用
在实际数据库开发中,设置默认值的函数可以使开发人员更有效地操作数据库。除了上述介绍的函数外,还有其他许多函数可用于为列设置默认值。
总结
本文介绍了在MSSQL中设置默认值的函数。每个函数都可以用于不同的数据类型和列类型,并可以为新行提供有用的默认值。