DM7 SQL域怎么管理

59次阅读
没有评论

共计 1950 个字符,预计需要花费 5 分钟才能阅读完成。

本篇内容介绍了“DM7 SQL 域怎么管理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

管理 SQL 域
为了支持 SQL 标准中的域对象定义与使用,DM 支持 DOMAIN 的创建、删除以及授权 DDL 语句,并支持在表定义中使用 DOMAIN。域(DOMAIN)是一个可允许值的集合。域在模式中定义,并由 域名 标识。域是用来约束由各种操作存储于基表中某列的有效值集。域定义说明一种数据类型,它也能进一步说明约束域的有效值的 域约束,还可说明一个 缺省子句,该子句规定没有显式指定值时所要用的值或列的缺省值。

创建 DOMAIN
CREATE DOMAIN 创建一个新的数据域。定义域的用户成为其所有者。DOMAIN 为模式类型对象,其名称在模式内唯一。

举例说明

SQL  CREATE DOMAIN DA INT CHECK (VALUE   100); executed successfully used time: 11.754(ms). Execute id is 148. SQL  select name,id from sysobjects where name= DA 
LINEID NAME ID 
---------- ---- -----------
1 DA 419430401
used time: 0.945(ms). Execute id is 149.

使用 DOMAIN
在表定义语句中,支持为表列声明使用域。如果列声明的类型定义使用域引用,则此列定义直接继承域中的数据类型、缺省值以及 CHECK 约束。如果列定义使用域,然后又自己定义了缺省值,则最终使用自己定义的缺省值。用户可以使用自己的域。如果要使用其它用户的域,则必须被授予了该域的 USAGE 权限。DBA 角色默认拥有此权限。
例如在 T 表中使用上面创建的域 DA。

SQL  CREATE TABLE T(ID DA);
executed successfully
used time: 12.655(ms). Execute id is 149.
SQL  select name,id from sysobjects where name= T 
LINEID NAME ID 
---------- ---- -----------
1 T 1540
used time: 1.255(ms). Execute id is 157.
SQL  select * from syscolumns where id=1540;
LINEID NAME ID COLID TYPE$ LENGTH$ SCALE NULLABLE$ DEFVAL INFO1 INFO2 
---------- ---- ----------- ----------- ------- ----------- ----------- --------- ------ ----------- -----------
1 ID 1540 0 INTEGER 4 0 Y NULL 0 0
used time: 1.249(ms). Execute id is 158.
SQL  insert into t values(1); 
affect rows 1
used time: 1.180(ms). Execute id is 160.
SQL  insert into t values(100);
insert into t values(100);
[-6604]:Violate check constraint of [CONS134218952].
used time: 1.176(ms). Execute id is 0.

列定义虽然使用了域后,其 SYSCOLUMNS 系统表中类型相关字段记录域定义的数据类型。也就是说,从 SYSCOLUMNS 系统表中不会表现出对域的引用。使用某个域的用户必须具有该域的 USAGE DOMAIN 或 USAGE ANY DOMAIN 权限。

删除 DOMAIN
删除一个用户定义的域。用户可以删除自己拥有的域,具有 DROP ANY TABLE 系统权限的用户则可以删除任意模式下的域。RESTRICT 表示仅当 DOMAIN 未被表列使用时才可以被删除;CASCADE 表示级联删除。
例如:

SQL  DROP DOMAIN DA CASCADE;
executed successfully
used time: 29.834(ms). Execute id is 163.

“DM7 SQL 域怎么管理”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-17发表,共计1950字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)