定义
Is_Versioned 以表作为输入参数,如果表已被注册为参与传统版本化,则返回 TRUE。如果表未注册为传统版本化,则 Is_Versioned 返回 FALSE。如果表未注册到地理数据库,则 Is_Versioned 将返回 NOT REGISTERED。请注意,如果表不存在于数据库中(例如,输入的名称不正确),则会返回一条指明表没有注册的消息,因为 Is_Versioned 只检查地理数据库系统表以查看表是否存在。
语法
<geodatabase administrator schema>.is_versioned (<table owner>, <table name>)
在大多数地理数据库中,地理数据库管理员方案是 sde。但是,在 SQL Server dbo 方案地理数据库中,则为 dbo;而在 Oracle 用户方案地理数据库中,则为用户方案的名称。
返回类型
字符串
如果指定表已注册到地理数据库,并且已注册为传统版本化,则返回 TRUE。
如果指定表已注册到地理数据库,但尚未注册到传统版本化,则返回 FALSE。
如果指定表未注册到地理数据库,数据库中不存在指定表,或者您无权访问该表,则返回 NOT REGISTERED。
示例
下面是在每种支持的数据库类型中使用 Is_Versioned 函数的示例。
第一个示例查询由 tech3 所有的 laterals 表,以确定其是否参与传统版本化。
第二个示例查询由 crewboss 所有的 crews 表,以确定其是否参与传统版本化。Crews 未注册到传统版本化;因此,返回 FALSE。
第三个示例查询由 dentry 所有的 service_areas。service_areas 表未注册到地理数据库。
Db2
VALUES sde.is_versioned('TECH3', 'LATERALS')
TRUE
VALUES sde.is_versioned('CREWBOSS', 'CREWS')
FALSE
VALUES sde.is_versioned('DENTRY', 'SERVICE_AREAS')
NOT REGISTERED
Oracle
SELECT sde.gdb_util.is_versioned('TECH3', 'LATERALS') FROM DUAL;
SDE.GDB_UTIL.IS_VERSIONED('TECH3', 'LATERALS') --------------------------------------------------
TRUE
SELECT sde.gdb_util.is_versioned('CREWBOSS', 'CREWS') FROM DUAL;
SDE.GDB_UTIL.IS_VERSIONED('CREWBOSS', 'CREWS') --------------------------------------------------
FALSE
SELECT sde.gdb_util.is_versioned('DENTRY', 'SERVICE_AREAS') FROM DUAL;
SDE.GDB_UTIL.IS_VERSIONED('DENTRY', 'SERVICE_AREAS') ----------------------------------------------------
NOT REGISTERED
PostgreSQL
SELECT sde.is_versioned('tech3', 'laterals');
TRUE
SELECT sde.is_versioned('crewboss', 'crews');
FALSE
SELECT sde.is_versioned('dentry', 'services_areas');
NOT REGISTERED
SQL Server
SELECT dbo.is_versioned('tech3', 'laterals');
TRUE
SELECT dbo.is_versioned('crewboss', 'crews');
FALSE
SELECT dbo.is_versioned('dentry', 'services_areas');
NOT REGISTERED