sql - 将列添加到 SQL Server 数据库中的表并使用案例设置默认值

标签 sql sql-server database

我需要在表 Major 中添加一个列 IsDeleted,默认值为: 当 MajorName 像 '%Engineering%' 时为真,而在其他没有单词 Engineering 的时候为假

最佳答案

将其添加为 computed column (又名虚拟列)

alter table Major add IsDeleted as 
    cast (case when MajorName like '%Engineering%' then 1 else 0 end as bit)

演示

create table Major (MajorName varchar (100))

alter table Major add IsDeleted as 
    cast (case when MajorName like '%Engineering%' then 1 else 0 end as bit)

insert into Major (MajorName) values 
    ('This is the Engineering department'),('Hello world')

select * from Major

+------------------------------------+-----------+
| MajorName                          | IsDeleted |
+------------------------------------+-----------+
| This is the Engineering department | 1         |
+------------------------------------+-----------+
| Hello world                        | 0         |
+------------------------------------+-----------+

关于sql - 将列添加到 SQL Server 数据库中的表并使用案例设置默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40951891/

相关文章:

mysql - 打开 MS SQL TCP 端口(安全)

sql-server - 尝试同时运行 Delete 语句时,KEY Lock 上的 SQL Server 死锁

excel - 如何在 Microsoft Access 表单上使用网络摄像头捕获?

mysql - 使用 where 和 group by 选择具有最小列值的行

php - 如何防止 PHP 中的 SQL 注入(inject)?

mysql - 选择带有条件的别名以计入mysql中的百分比

php - 是否可以将不同服务器上的 2 个 MySQL 数据库链接在一起?就像可访问的备份一样

mysql - 如何通过我未选择的列对两个带有 UNION 的 SELECT 进行排序?

mysql - SQL 更新错误 + WHERE 子句说明

Pythonic boolean 转换