100分,一个简单的SQL语句,解释一下

来源:百度知道 编辑:UC知道 时间:2024/06/17 22:54:51
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Depart]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[Depart](
[departID] [int] IDENTITY(1,1) NOT NULL,
[departName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_Depart] PRIMARY KEY CLUSTERED
(
[departID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
请尽量解释详细一点!
特别是COLLATE Chinese_PRC_CI_AS NULL这一句有什么作用,是干什么的?
CONSTRAINT [PK_Depart] PRIMARY KEY CLUSTERED
(
[departID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

这一句能再解释清楚一点吗?!谢谢了!!

SET ANSI_NULLS ON
--当 SET ANSI_NULLS 为 ON 时,即使 column_name 中包含空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行
GO
SET QUOTED_IDENTIFIER ON
--当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔。
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Depart]') AND type in (N'U'))
--当已经存在表[Depart]时候先删除表[Depart]
BEGIN
--建表
CREATE TABLE [dbo].[Depart](
[departID] [int] IDENTITY(1,1) NOT NULL, --标识列从1开始递增
[departName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL, --指定数据库的默认排序规则Chinese_PRC_CI_AS指针对大陆简体字UNICODE的排序规则
CONSTRAINT [PK_Depart] PRIMARY KEY CLUSTERED --为[departID]的升序建立为主键
(
[departID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO

回答者:水叹花
说的差不多了。
还有给LZ一个建议。不清楚的时候请你选中你不清楚的文字然后按:shift+F1

楼上的解释有个错误。
if not exists(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Depart]