向表添加列时强制默认值 - SQL Server
问题:
当在 SQL Server 中向表格添加新列时,如何强制执行默认值?
答案:
在 SQL Server 中,如果您向表格中添加了新列并将其分配了默认值,您可以使用以下语句或方法在添加列时强制执行默认值:
使用 DEFAULT 子句为列分配默认值。例如,要为名为 customers
的表格中的名为 age
的列设置默认值,以下语句应:
CREATE TABLE customers (
id INT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
age INT DEFAULT 25
);
使用表格的创建时的子句可以为列分配默认值。对于 SQL Server Management Studio (SSMS),通过右键单击数据库名,选择 "Tasks" (任务),然后选择 "Generate Scripts" (生成脚本)。
将所有 CREATE TABLE 子句替换为以下内容,将
new_table_name
替换为您的目标表的名称,将new_column_name
替换为您的目标列的名称,将default_value
替换为您的默认值:
CREATE TABLE new_table_name (
...
)
GO
ALTER TABLE new_table_name ADD COLUMN new_column_name INT DEFAULT 25;
EXEC spexecutesql N'ALTER TABLE new_table_name ADD CONSTRAINT DF' + QUOTENAME(new_table_name) + '_column_name SET DEFAULT (' + CAST(default_value as NVARCHAR(255)) + N')';
...
这将为名为 new_table_name
的表格中的名为 new_column_name
的列设置强制性的默认值。
您还可以使用 DEFAULT 约束为列分配默认值。创建一个新列的定义并将其分配一个 DEFAULT 子句。示例如下:
ALTER TABLE customers
ADD COLUMN age INT,
ADD CONSTRAINT age_constraint DEFAULT 25 FOR age;
UPDATE customers SET age = DEFAULT;
这将为名为 customers
的表格中的名为 age
的列设置强制性的默认值。
概念拓展:
优势:
应用场景:
领取专属 10元无门槛券
手把手带您无忧上云