sql-server - 如何在 SQL Server 中使用 alter 设置列的默认值?

标签 sql-server sql-server-2008

我一直坚持为已创建的列定义默认值。

我创建了一个列,但没有在其中设置默认值,但后来我意识到我应该使用 alter 在其中设置默认值。所以我尝试但失败,到处搜索但没有找到解决方案。

这是代码

create table stock
( 
    item_name varchar(200),
    item_code varchar(50),
    Price int,
    availabilty varchar(20),

    constraint i_n unique(item_name),
    constraint i_c primary key(item_code)
)

现在,在使用 insert into 添加一些数据后,我无法在价格列中添加默认约束。

请帮助我如何使用alter在价格列中添加默认约束

如果我添加这样的约束

alter table stock
add constraint ID default '' (price)

ssms 将其检测为错误并显示

Msg 142, Level 15, State 2, Line 0
Incorrect syntax for definition of the 'TABLE' constraint.

我使用的是 SQL Server 2008

谢谢

最佳答案

您需要使用这个:

ALTER TABLE dbo.Stock
ADD CONSTRAINT DF_Stock_Price DEFAULT(0) FOR Price

由于 PriceINT 列,因此您不能'' 定义为其默认值 - 它必须是一个有效的 INT 值!

关于sql-server - 如何在 SQL Server 中使用 alter 设置列的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26025009/

相关文章:

sql - SQL Server 2008 中超前滞后函数的替代

c# - 通过传递逗号分隔值删除记录 SQL Server 和 C#

c# - 为什么 SQL Server 2008 及更高版本不支持派生自泛型的 CLR 类型?

SQL XML Xquery 在节点选择中使用变量进行数据查询?

sql - SQL Server 2008 中的 Open Table 去了哪里?

sql - 我需要显示每月库存数据

sql - 长 SQL 文件运行 SQL Server 内存不足(22,000 行)

sql-server - 在 SQL 中为插入后、更新后和删除后创建触发器

java - JDBC 日期到 SQL 日期

sql-server - SQL Server 清理数据库、事务日志?