科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道用TSQL定义SQL Server约束

用TSQL定义SQL Server约束

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

这篇文章向我们介绍了如何用TSQL定义约束,并探讨了如何使用TSQL的不同方式来定义这些约束。

作者:builder.com.cn 2007年5月9日

关键字: SQL Server

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共8页)

下面的脚本是在表创建后再对该表创建主关键字约束:

IF OBJECT_ID('SalesHistory')>0

      DROP TABLE SalesHistory;

GO

CREATE TABLE [dbo].[SalesHistory](

      [SaleID] [int] IDENTITY(1,1) NOT NULL,

      [Product] [char](150) NULL,

      [SaleDate] [datetime] NULL,

      [SalePrice] [money] NULL

)

GO

ALTER TABLE SalesHistory

ADD CONSTRAINT pk_SaleID PRIMARY KEY (SaleID)

GO

外键约束

这个约束主要是用来在一个表中限制它的某些列的值与另一个表的某些列的值的关联关系。在两个表之间的连接需要使用一个“查找表”,这个表中包括接受值的列表;这个列表必须包括唯一约束或者主关键字约束。在两个表之间建立约束之后,在外键表中对约束域中的所有数据进行修改都会引起效验,以确保数据更新或者插入的时候被约束在查找表中。

Listing A中的脚本创建了一个ProductTypes表和一个SalesHistory表,其中,ProductTypes表将作为查找表,SalesHistory表将引用ProductTypes表中的ProductID列的值。如果现在没有在表中对约束进行定义,那么这时候,我们就应该返回并对它添加约束。你能根据Listing B中的脚本来操作。

先前的脚本包括WITH NOCHECK语句。我使用这条语句,是为了在添加约束的时候不去考虑表中现有的值是否符合约束条件。这样的话,表中已有的任何记录如果违反了新增加的约束的话,都将被忽略,使用WITH NOCHECK可以方便创建约束。这时候约束只能应用在新输入到SalesHistory表中的记录上。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章