当前位置: 代码迷 >> Sql Server >> 请翻译下语句的含义解决方法
  详细解决方案

请翻译下语句的含义解决方法

热度:28   发布时间:2016-04-27 18:00:08.0
请翻译下语句的含义
CONSTRAINT [Prm_ICStockBill] PRIMARY KEY CLUSTERED 
(
[FInterID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]


------解决方案--------------------
就是加个主键约束,小括号里是主键列,WITH里是一堆选项,ON后面是所在文件组
------解决方案--------------------
CONSTRAINT

是可选关键字,表示 PRIMARY KEY、NOT NULL、UNIQUE、FOREIGN KEY 或 CHECK 约束定义的开始。约束是特殊属性,用于强制数据完整性并可以为表及其列创建索引。


------解决方案--------------------
SQL code
A. 使用 PRIMARY KEY 约束下例显示在示例数据库 pubs 的 jobs 表中,job_id 列中具有聚集索引的 PRIMARY KEY 约束的列定义;此例由系统提供约束名。job_id   smallint      PRIMARY KEY CLUSTERED下例显示如何为 PRIMARY KEY 约束提供名称。此约束用于 employee 表中的 emp_id 列。此列基于用户定义数据类型。emp_id   empid      CONSTRAINT PK_emp_id PRIMARY KEY NONCLUSTEREDB. 使用 FOREIGN KEY 约束FOREIGN KEY 约束用于引用其它表。FOREIGN KEY 可以是单列键或多列键。下例显示 employee 表上引用 jobs 表的单列 FOREIGN KEY 约束。对于单列 FOREIGN KEY 约束,只需要 REFERENCES 子句。job_id   smallint      NOT NULL      DEFAULT 1      REFERENCES jobs(job_id)也可以显式使用 FOREIGN KEY 子句并复述列特性。注意在这两个表中列名不必相同。FOREIGN KEY (job_id) REFERENCES jobs(job_id)多列键约束作为表约束创建。在 pubs 数据库中,sales 表包含多列 PRIMARY KEY。下例显示如何从其它表中引用此键(可选择显式约束名)。CONSTRAINT FK_sales_backorder FOREIGN KEY (stor_id, ord_num, title_id)   REFERENCES sales (stor_id, ord_num, title_id)C. 使用 UNIQUE 约束UNIQUE 约束用于强制非主键列的唯一性。PRIMARY KEY 约束列自动包含唯一性限制;但是,UNIQUE 约束允许存在空值。下例显示表 authors 中名为 pseudonym 的列。该列强制作者笔名必须唯一。pseudonym varchar(30)   NULLUNIQUE NONCLUSTERED下例显示在 stor_id 实际上是 PRIMARY KEY 的 stores 表中,stor_name 列和 city 列上创建的 UNIQUE 约束;同一个城市中的商店不应同名。CONSTRAINT U_store UNIQUE NONCLUSTERED (stor_name, city)D. 使用 DEFAULT 定义使用 INSERT 和 UPDATE 语句时,如果没有提供值,则默认值会提供值。在 pubs 数据库中,使用了许多 DEFAULT 定义以确保输入有效的数据或占位符。在 jobs 表上,当没有显式输入实际的描述信息时,默认的字符串将提供描述信息(列 job_desc)。DEFAULT 'New Position - title not formalized yet'在 employee 表中,员工可以受雇于子公司或母公司。如果没有显式提供公司信息,则输入母公司(注意在表定义中可以嵌套注释,如下所示)。DEFAULT ('9952')/* By default the Parent Company Publisher is the companyto whom each employee reports. */除了常量以外,DEFAULT 定义还可以包含函数。使用下例获取输入项的当前日期:DEFAULT (getdate())niladic 函数也可以提高数据的完整性。若要跟踪插入行的用户,请使用 niladic 函数 USER(niladic 函数不使用括号):DEFAULT USERE. 使用 CHECK 约束下例显示对输入到 jobs 表中的 min_lvl 列和 max_lvl 列的值的限制。这两个约束都未命名:CHECK (min_lvl >= 10)与CHECK (max_lvl <= 250)下例显示对输入到 employee 表的 emp_id 列中的字符数据具有模式限制的命名约束。CONSTRAINT CK_emp_id CHECK (emp_id LIKE    '[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]' OR   emp_id LIKE '[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]')下例指定 pub_id 必须在特定的列表中或遵循给定的模式。此约束用于 publishers 表中的 pub_id 列。CHECK (pub_id IN ('1389', '0736', '0877', '1622', '1756')   OR pub_id LIKE '99[0-9][0-9]')F. 完整的表定义下例显示 pubs 数据库中所创建的三个表(jobs、employee 和 publishers)的完整表定义,其中包含所有的约束定义。/* ************************** jobs table ************************** */CREATE TABLE jobs(   job_id  smallint      IDENTITY(1,1)      PRIMARY KEY CLUSTERED,   job_desc        varchar(50)     NOT NULL      DEFAULT 'New Position - title not formalized yet',   min_lvl tinyint NOT NULL      CHECK (min_lvl >= 10),   max_lvl tinyint NOT NULL      CHECK (max_lvl <= 250))/* ************************* employee table ************************* */CREATE TABLE employee (   emp_id  empid      CONSTRAINT PK_emp_id PRIMARY KEY NONCLUSTERED      CONSTRAINT CK_emp_id CHECK (emp_id LIKE          '[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]' or         emp_id LIKE '[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]'),      /* Each employee ID consists of three characters that       represent the employee's initials, followed by a five       digit number ranging from 10000 through 99999 and then the       employee's gender (M or F). A (hyphen) - is acceptable       for the middle initial. */   fname   varchar(20)     NOT NULL,   minit   char(1) NULL,   lname   varchar(30)     NOT NULL,   job_id  smallint        NOT NULL      DEFAULT 1      /* Entry job_id for new hires. */      REFERENCES jobs(job_id),   job_lvl tinyint      DEFAULT 10,      /* Entry job_lvl for new hires. */   pub_id  char(4) NOT NULL      DEFAULT ('9952')      REFERENCES publishers(pub_id),      /* By default, the Parent Company Publisher is the company      to whom each employee reports. */   hire_date       datetime        NOT NULL      DEFAULT (getdate())      /* By default, the current system date is entered. */)/* ***************** publishers table ******************** */CREATE TABLE publishers(   pub_id  char(4) NOT NULL          CONSTRAINT UPKCL_pubind PRIMARY KEY CLUSTERED         CHECK (pub_id IN ('1389', '0736', '0877', '1622', '1756')            OR pub_id LIKE '99[0-9][0-9]'),   pub_name      varchar(40)     NULL,   city         varchar(20)     NULL,   state      char(2) NULL,   country      varchar(30)     NULL            DEFAULT('USA'))G. 在列中使用 uniqueidentifier 数据类型下例创建含有 uniqueidentifier 列的表。该表使用 PRIMARY KEY 约束以确保用户不会在表中插入重复的值,并在 DEFAULT 约束中使用 NEWID() 函数为新行提供值。CREATE TABLE Globally_Unique_Data(guid uniqueidentifier    CONSTRAINT Guid_Default    DEFAULT NEWID(),Employee_Name varchar(60),CONSTRAINT Guid_PK PRIMARY KEY (Guid))H. 对计算列使用表达式下例显示如何使用表达式 ((low + high)/2) 计算 myavg 计算列。CREATE TABLE mytable    (    low int,    high int,    myavg AS (low + high)/2   )I. 对计算列使用 USER_NAME 函数下例在 myuser_name 列中使用 USER_NAME 函数。CREATE TABLE mylogintable   (     date_in datetime,    user_id int,    myuser_name AS USER_NAME()   )J. 使用 NOT FOR REPLICATION下例显示如何在订阅了复制的表中使用 IDENTITY 属性。此表包含 CHECK 约束,以确保此系统生成的 SaleID 值不会增长到为复制发布服务器指派的范围内。CREATE TABLE Sales   (SaleID INT IDENTITY(100000,1) NOT FOR REPLICATION,             CHECK NOT FOR REPLICATION (SaleID <= 199999),    SalesRegion CHAR(2),   CONSTRAINT ID_PK PRIMARY KEY (SaleID)   )
  相关解决方案