示例数据库的疑问

wwfxgm 2018-05-09 09:22:06
以下是示例数据库adventureworks2017的 表 employee
其中 [CurrentFlag] [dbo].[Flag] DEFAULT ((1)) NOT NULL 这里 dbo.flag 啥意思?居然有这样的写法。
还有一个是 [OrganizationNode] hierarchyid NULL,
[OrganizationLevel] AS ([OrganizationNode].[GetLevel]()) NULL
这个一般好像也用处不大。感觉用不大起来。

具体表结构如下:
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[HumanResources].[Employee]') AND type IN ('U'))
DROP TABLE [HumanResources].[Employee]
GO

CREATE TABLE [HumanResources].[Employee] (
[BusinessEntityID] int NOT NULL,
[NationalIDNumber] nvarchar(15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[LoginID] nvarchar(256) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[OrganizationNode] hierarchyid NULL,
[OrganizationLevel] AS ([OrganizationNode].[GetLevel]()) NULL,
[JobTitle] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[BirthDate] date NOT NULL,
[MaritalStatus] nchar(1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Gender] nchar(1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[HireDate] date NOT NULL,
[SalariedFlag] [dbo].[Flag] DEFAULT ((1)) NOT NULL,
[VacationHours] smallint DEFAULT ((0)) NOT NULL,
[SickLeaveHours] smallint DEFAULT ((0)) NOT NULL,
[CurrentFlag] [dbo].[Flag] DEFAULT ((1)) NOT NULL,
[rowguid] uniqueidentifier DEFAULT (newid()) NOT NULL ROWGUIDCOL,
[ModifiedDate] datetime DEFAULT (getdate()) NOT NULL
)
GO
...全文
203 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2018-05-09
  • 打赏
  • 举报
回复
其中 [CurrentFlag] [dbo].[Flag] DEFAULT ((1)) NOT NULL   这里  dbo.flag 啥意思?居然有这样的写法。
自定义用户类型 [dbo].[Flag] ,查看方法--在数据库—可编程性—类型
[OrganizationNode] hierarchyid NULL,
                      [OrganizationLevel] AS ([OrganizationNode].[GetLevel]()) NULL 
这是在08版本提供的树形函数,这是一对用于创建广度优先排序,要同创建索引一起用来提高查询性能 --创建 e.g.
--创建广度优先排序
CREATE CLUSTERED INDEX IDX_Employee
ON [HumanResources].[Employee]
(
[OrganizationLevel]
, [OrganizationNode]);

--深度优先索引
CREATE UNIQUE INDEX U_Employee
ON [HumanResources].[Employee] ([OrganizationNode]);
卖水果的net 2018-05-09
  • 打赏
  • 举报
回复
其中 [CurrentFlag] [dbo].[Flag] DEFAULT ((1)) NOT NULL   这里  dbo.flag 啥意思?居然有这样的写法。
是一个自定义的数据类型。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧