SQL技巧:探索用户自定义数据类型

2016-01-29 15:53 4 1 收藏

SQL技巧:探索用户自定义数据类型,SQL技巧:探索用户自定义数据类型

【 tulaoshi.com - SQLServer 】

用户自定义数据类型是一个确保数据库中域与数据紧密结合的好办法。数据的类型可能在整个数据库中都是一致的,每个数据的适用范围和它的数据类型是相关联的。sp_bindrule过程是一个向后兼容过程,该过程为数据类型确定了一个适用范围。CREATE RULE命令也是一个向后兼容命令,为域值的遵守产生了一个规则。该规则可以被限制为用户自定义的数据类型。CREATE DEFAULT也是一个向后兼容命令,而且也可以被限制为用户自定义的数据类型。

这些向后兼容命令都是由Sybase演化而来的。SQL Server的未来版本是否支持它们现在还不能确定。微软推荐用户使用CHECK CONSTRAINT命令。然而,CHECK CONSTRAINTS不支持模块化编码。你必须为所有需要CHECK CONSTRAINT的表格的每一列都创建一个CHECK CONSTRAINT。另一方面,创建规则和缺省值,并把它们限制在一个用户自定义数据类型这个过程只需进行一次。用户自定义数据类型有很多种,比如性别和标签的布尔值。性别的域值可以是雄性,雌性,以及未知。布尔值的域值可以是数值,也可以是真假值。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/sqlserver/)

下面的例子说明了向后兼容方法的模块性和关联域的未来方法。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/sqlserver/)

EXEC sp_addtype @typename= TrueFalse, @phystype = 'CHAR(1)' ,_   @nulltype = 'NOT NULL', @owner = 'dbo'-- BACKWARD COMPATIBLE METHODCREATE RULE TrueFalseRuleAS @TrueFalse IN ('T','F') EXEC sp_bindrule TrueFalseRule, TrueFalseCREATE DEFAULT TrueFalseDefault AS 'F'EXEC sp_bindefault TrueFalseDefault, TrueFalse CREATE TABLE backward_test1(bt1_key1 INT IDENTITY NOT NULL,bt1_col1_flag TrueFalse)CREATE TABLE backward_test2(bt1_key2 INT IDENTITY NOT NULL,bt1_col2_flag TrueFalse)-- FUTURE METHODCREATE TABLE future_test1(ft1_key1 INT IDENTITY NOT NULL,ft1_col1_flag CHAR(1)CONSTRAINT ck_ft1_flag1 CHECK ( ft1_col1_flag in ('T','F') )DEFAULT 'F')CREATE TABLE future_test2(ft2_key1 INT IDENTITY NOT NULL,ft2_col1_flag CHAR(1)CONSTRAINT ck_ft2_flag1 CHECK ( ft2_col1_flag in ('T','F') )DEFAULT 'F')

来源:https://www.tulaoshi.com/n/20160129/1496684.html

延伸阅读
标签: SQLServer
MS SQL Server 2000系统数据类型: (来源于SQL查询分析器)  1bigint        从 -2^63 到 2^63-1 之间的 integer (整数)数据  2binary        定长的binary数据,最长为8,000字节  3bit        integer数据,值为1或0...
新建一 DataSet , 并加入数据 : prepareTable function TFrm_Print.CreateTableInMemory(const AFieldDefs:TFieldDefs):TDataSet; var   TempTable:TClientDataSet; begin   TempTable:=nil;   Result:=nil;   if AFieldDefsnil then   begin     try &n...
标签: SQLServer
近来在做数据库设计,有时候真弄不清SQL2000里的数据类型,所以摘了这篇文章。 (1)char、varchar、text和nchar、nvarchar、ntext char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到...
标签: SQLServer
  SQL92标准定义了若干种基本数据类型,它们是SQL数据库中各种数据类型的基础。在《字符串数据类型》一文中,我们已经详细讨论了SQL92标准所定义的字符串数据类型。现在,我们来进一步讨论数值数据类型。    你最好开始尝试使用不同数据库实现方法并在它们传递数据,这样可以加深你对数值数据类型的理解。本文将给你一个数...
标签: ASP
ASP只有一种数据类型那就是"variant "。它是一种特殊的数据类型能够根据它的使用表示很多不同种类的信息。因为它是ASP中唯一的数据类型,它也是ASP中所有函数返回值的唯一类型。它很简单的,"variant"数据类型能够表示数字或者是字符串。当你在ASP程序中把它当做是数字,它就自动转化为"Numeric",如果用它为字符串,它也同样就是"String"了。也...

经验教程

849

收藏

96
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部