SQL Server(MSSQL)踩坑记录

MSSQL 出的比较早,遵循严格的 SQL 语法,并不像 MySQL 和 PostgreSQL 那样宽松,也不支持存储 JSON 字段,里面有坑。

别名提示: SQL Server = MSSQL = mssql, MySQL = mysql, PostgreSQL = pg

索引

NULL 是有效值

mssql 中 NULL 是有效值,设置唯一索引的字段只能有一个 NULL。但在 pg 和 mysql 中,多个 NULL 视为不同的值。

ID Email
1 NULL(插入成功)
2 NULL (插入失败,重复)

删除索引

在 MSSQL 中,UNIQUE 约束会自动创建一个唯一索引,索引不能直接通过 DROP INDEX 删除,需要先删除 UNIQUE 约束。

视图

创建视图

注意:必须得有指定列名

  • CREATE VIEW test1 AS SELECT 1 ❌
  • CREATE VIEW test1 AS SELECT 1 as value ✅