OBJECTPROPERTY用法整理

2021-09-30 04:13:41 字數 2463 閱讀 8442

語法

objectproperty(id,property)
id 是表示當前資料庫中物件 id 的表示式。id 的資料型別為int,並假定為當前資料庫上下文中的架構範圍內的物件。

property乙個表示式,提供

id 指定的物件的返回資訊。

property 可以是下列值之一:

注意:除非另外註明,否則出現以下情況時,將返回 null:property 不是有效的屬性名稱,id 不是有效的物件 id,

id 不是指定的 property 支援的物件型別,或者呼叫方無權檢視物件元資料。

返回型別

int

異常出現錯誤時或呼叫方沒有許可權檢視物件時,將返回 null。

使用者只能檢視符合如下條件的安全物件的元資料:該安全物件為該使用者所有,或已授予該使用者對該安全物件的許可權。這意味著,如果使用者對物件沒有任何許可權,則元資料生成的內建函式(如 objectproperty)可能返回 null。有關詳細資訊,請參閱元資料可見性配置和元資料可見性故障排除。

備註資料庫引擎假定 object_id 位於當前資料庫上下文中。引用另乙個資料庫中的 object_id 的查詢將返回 null 或返回不正確的結果。例如,在下面的查詢中,當前資料庫上下文為 master 資料庫。資料庫引擎將盡量返回該資料庫(而不是在查詢中指定的資料庫)中指定的 object_id 的屬性值。由於檢視 vemployee 不在 master 資料庫中,該查詢將返回不正確的結果。

use master;

goselect objectproperty(object_id(n'adventureworks.humanresources.vemployee'), 'isview');

go objectproperty(view_id, 'isindexable')可能會耗費大量的計算機資源,這是因為處理 isindexable 屬性需要分析檢視定義、規範化和區域性優化。儘管 isindexable 屬性可以標識出能編制索引的表或檢視,但在實際建立索引時,如果不能滿足某些索引鍵要求,建立過程仍然可能會失敗。有關詳細資訊,請參閱 create index (transact-sql)。

如果至少新增了乙個表列用於索引,則 objectproperty(table_id, 'tablehasactivefulltextindex')將返回值 1 (true)。只要新增了用於索引的第一列後,全文索引即可用於填充。

建立表後,表的元資料中 quoted identifier 選項始終是 on,即使在建立表時將該選項設定為 off。因此,objectproperty(table_id, 'isquotedidenton')將始終返回值 1 (true)。

示例a. 驗證某個物件是否為表

以下示例將測試 unitmeasure 是否為 adventureworks 資料庫中的表。

use adventureworks;

goif objectproperty (object_id(n'production.unitmeasure'),'istable') = 1

print 'unitmeasure is a table.'

else if objectproperty (object_id(n'production.unitmeasure'),'istable') = 0

print 'unitmeasure is not a table.'

else if objectproperty (object_id(n'production.unitmeasure'),'istable') is null

print 'error: unitmeasure is not a valid object.';

gob. 驗證使用者定義的標量值函式是否為確定性函式

以下示例將測試使用者定義的標量值函式 ufngetproductdealerprice(該函式返回 money)是不是乙個確定性函式。

use adventureworks;

goselect objectproperty(object_id('dbo.ufngetproductdealerprice'), 'isdeterministic');

go結果集顯示 ufngetproductdealerprice 是乙個確定性函式。

-----

0 c. 查詢屬於特定架構的物件

以下示例使用 schemaid 屬性返回屬於架構 production 的所有物件。

use adventureworks;

goselect name, object_id, type_desc

from sys.objects

where objectproperty(object_id, n'schemaid') = schema_id(n'production')

order by type_desc, name;

go

用Margin還是用Padding

用margin還是用padding 何時應當使用margin 需要在border外側新增空白時。空白處不需要背景 色 時。上下相連的兩個盒子之間的空白,需要相互抵消時。如15px 20px的margin,將得到20px的空白。何時應當時用padding 需要在border內測新增空白時。空白處需要背...

用Margin還是用Padding

用margin還是用padding這個問題是每個學習css高階時的必經之路。css邊距屬性定義元素周圍的空間。通過使用單獨的屬性,可以對上 右 下 左的外邊距進行設定。也可以使用簡寫的外邊距屬性同時改變所有的外邊距。w3school 邊界 margin 元素周圍生成額外的空白區。空白區 通常是指其他...

用yaml寫用例

第一步 安裝yaml,在執行裡輸入 pip install pyyaml 檢驗是否安裝成功,在pycharm裡輸入 import yaml 第二步 建立乙個file,字尾寫yaml或yml 在yml檔案裡寫入單個使用者名稱和密碼 開啟yml檔案並以字典的形式列印出來 執行結果 在yml檔案裡寫入多個...