關於注釋這個問題,之前沒用SQL語句去添加過,都是在Enterprise Manager裡面添加的:(查了一下資料,得知Microsoft在SQL Server 2000中引入了擴充屬性,使用者可在各種資料庫物件上定義這些屬性。這些擴充屬性可用於儲存與資料庫物件有關的應用程式或網站特有的資訊。可以用sp_addextendedproperty將新擴充屬性添加到資料庫物件中。如果屬性已經存在,則過程失敗。用法如下:sp_addextendedproperty
[ @name = ] { 'property_name' }
[ , [ @value = ] { 'value' }
[ , [ @level0type = ] { 'level0_object_type' }
, [ @level0name = ] { 'level0_object_name' }
[ , [ @level1type = ] { 'level1_object_type' }
, [ @level1name = ] { 'level1_object_name' }
[ , [ @level2type = ] { 'level2_object_type' }
, [ @level2name = ] { 'level2_object_name' }
]
]
]
]
參數
[ @name = ] { 'property_name' }要添加的屬性名稱。property_name 的資料類型為 sysname,它不能是 NULL。名稱可能還包括空白或非字母數字字串和二進位值。
註:property_name='MS_Description'時,為添加註釋
[ @value = ] { 'value' }將要與屬性相關聯的值。value 的資料類型為 sql_variant,帶有預設設定 NULL。value 的大小不能超過 7,500 位元組;否則 SQL Server 會產生錯誤。
[ @level0type = ] { 'level0_object_type' }使用者或使用者定義型別。level0_object_type 的資料類型為 varchar(128),其預設值為 NULL。有效輸入是 USER、TYPE 和 NULL。
[ @level0name = ] { 'level0_object_name' }指定的 0 級物件類型的名稱。level0_object_name 的資料類型為 sysname,其預設值為 NULL。
[ @level1type = ] { 'level1_object_type' }1 級對象的類型。level1_object_type 的資料類型為 varchar(128),其預設值為 NULL。有效輸入是 TABLE、VIEW、PROCEDURE、FUNCTION、DEFAULT、RULE 和 NULL。
[ @level1name = ] { 'level1_object_name' }指定的 1 級物件類型的名稱。level1_object_name 的資料類型為 sysname,其預設值為 NULL。
[ @level2type = ] { 'level2_object_type' }2 級對象的類型。level2_object_type 的資料類型為 varchar(128),其預設值為 NULL。有效輸入是 COLUMN、PARAMETER、INDEX、CONSTRAINT、TRIGGER 和 NULL。
[ @level2name = ] { 'level2_object_name' }指定的 2 級物件類型的名稱。level2_object_name 的資料類型為 sysname,其預設值為 NULL。
傳回碼值
0(成功)或 1(失敗)
注釋1.系統對象不允許有擴充屬性。2.對象是按層級區分的,0 級為最高,2 級為最低。當使用者添加、更新或刪除擴充屬性時,必須指定所有更進階別的對象。例如,如果使用者要向 1 級對象添加擴充屬性,就必須指定所有 0 級資訊。如果使用者要向 2 級對象添加擴充屬性,則必須提供關於 0 級和 1 級的所有資訊。3.在每個層級上,物件類型和對象名可唯一地標識對象。如果指定了一個對中的任一方,則必須指定另一方。4.給定了有效 property_name 和 value,如果沒有任何物件類型和名稱,則屬性屬於當前資料庫。如果指定物件類型和名稱,則還必須指定父物件和類型。否則,SQL Server 會產生錯誤。
許可權
db_owner 和 db_ddladmin 固定資料庫角色的成員可以將擴充屬性添加到任何對象中。使用者可以為他們所擁有的對象添加擴充屬性。然而,只有 db_owner 可以將屬性添加到使用者名稱稱中。
樣本
下面的樣本給表"T1"的"ID"列添加註釋:
CREATE table T1 (id int , name char (20))GOEXEC sp_addextendedproperty 'MS_Description', 'Employee ID', 'user', dbo, 'table', T1, 'column', id
另外sp_updateextendedproperty:更新現有擴充屬性的值。sp_dropextendedproperty:除去現有的擴充屬性。FN_LISTEXTENDEDPROPERTY:檢索現有擴充屬性的值在Oracle中可用COMMENT語句給欄位加註釋,如下:COMMENT ON COLUMN employees.job_id
IS 'abbreviated job title';刪除注釋:COMMENT ON COLUMN employees.job_id IS ' ';更詳細的文法參考Oracle文檔