全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2478
推到 Plurk!
推到 Facebook!

SQLServer系統表格使用小小心得

 
goat
高階會員


發表:53
回覆:130
積分:134
註冊:2002-06-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-06 18:07:42 IP:202.168.xxx.xxx 未訂閱
1.取得某一表格欄位名稱、型態、長度、描述及是否允許NULL SELECT A.name, C.value, B.name, A.length, A.isnullable FROM syscolumns A LEFT JOIN systypes B ON A.xtype=B.xusertype LEFT JOIN ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', 'XXX', 'column', default) C ON A.name=C.objname WHERE A.id = (SELECT id FROM sysobjects WHERE name = 'XXX') or SELECT A.name as FieldName ,C.value as DisplayName, B.name AS DataType, A.length as DataSize, A.isnullable FROM syscolumns A , systypes B, sysproperties C WHERE A.id = (SELECT id FROM sysobjects WHERE name = 'XXX') AND C.id = (SELECT id FROM sysobjects WHERE name = 'XXX') AND C.smallid=A.colorder AND A.xtype=B.xusertype 2.取得某一表格的PK 值 SELECT name FROM syscolumns WHERE colid IN (SELECT colid FROM sysindexkeys WHERE indid ='1' AND id in (SELECT id FROM sysobjects WHERE name = 'xxx')) AND id IN (SELECT id FROM sysobjects WHERE name = 'xxx') 3.取得某一表格的預設欄位及預設值 SELECT A.name,C.COLUMN_DEFAULT,B.name FROM sysobjects A, syscolumns B, INFORMATION_SCHEMA.COLUMNS C WHERE (A.id=B.cdefault) AND A.type ='D' AND C.TABLE_NAME='xxx' AND (C.COLUMN_NAME=B.name) AND A.parent_obj=(SELECT id FROM sysobjects WHERE name = 'xxx') PS.xxx--> 表格名稱 以上。 小弟土法煉鋼,如有錯誤的地方,敬請大家指正。
akira
一般會員


發表:7
回覆:4
積分:2
註冊:2003-08-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-07 12:40:34 IP:61.222.xxx.xxx 未訂閱
How about sp_helpXXXX in SQL HELP sp_help 報告某個資料庫物件 (列於 sysobjects 資料表中的任何物件)、某個使用者自訂資料型別、或者某個由 Microsoft® SQL Server™ 所提供的資料型別之相關資訊。 語法 sp_help [ [ @objname = ] name ] 引數 [@objname =] name 是 systypes 資料表中的 sysobjects 或者任何使用者自訂資料型別的物件名稱。name 是 nvarchar(776),預設值為 NULL。不接受資料庫名稱。 傳回碼值 0 (成功) 或 1 (失敗) 結果集 傳回的結果集視是否指定 name、何時指定,以及資料庫物件為何而定。 若 sp_help 執行時未加上任何引數,則會傳回現行資料庫中所有型別物件之摘要資訊。 資料行名稱 資料型別 描述 Name nvarchar(128) 物件名稱 Owner nvarchar(128) 物件擁有者 Object_type nvarchar(31) 物件類型 若 name 的型別為 SQL Server 或某個使用者自訂資料型別時,sp_help 傳回以下結果集。 資料行名稱 資料型別 描述 Type_name nvarchar(128) 資料型別名稱 Storage_type nvarchar(128) SQL Server 型別名稱。 Length smallint 資料型別的實體長度 (單位為位元組)。 Prec int 有效位數 (總位數)。 Scale int 小數位數。 Nullable varchar(35) 指出是否允許使用 NULL 值:Yes (是) 或 No (否)。 Default_name nvarchar(128) 繫結到此型別的預設值名稱。若未繫結規則,則使用 NULL。 Rule_name nvarchar(128) 繫結到此型別的規則名稱。若未繫結規則,則使用 NULL。 Collation sysname 資料型別的定序 (Collation)。非字元資料型別則為 NULL。 如果 name 是任何資料庫物件 (而非資料型別),sp_help 便會傳回此結果集,以及依據指定的物件之型別傳回額外的結果集。 資料行名稱 資料型別 描述 Name nvarchar(128) 資料表名稱 Owner nvarchar(128) 資料表擁有者 Type nvarchar(31) 資料表型別 Created_datetime datetime 資料表建立日期 依據指定的資料庫物件,sp_help 會傳回額外的結果集。 如果 name 是一個系統資料表、使用者資料表或檢視表,sp_help 便會傳回下列結果集 (但說明資料檔位於檔案群組中什麼位置的結果集,在檢視表中並不會傳回)。 為資料行物件所傳回的額外結果集: 資料行名稱 資料型別 描述 Column_name nvarchar(128) 資料行名稱。 Type nvarchar(128) 資料行資料型別。 Computed varchar(35) 指出是否計算資料行中的值:(Yes (是) 或 No (否))。 Length int 資料行長度 (單位為位元組)。 Prec char(5) 資料行有效位數。 Scale char(5) 資料行小數位數。 Nullable varchar(35) 指出資料行中是否允許使用 NULL 值:Yes (是) 或 No (否)。 TrimTrailingBlanks varchar(35) 刪減行尾的空白 (Yes (是) 或 No (否)。 FixedLenNullInSource varchar(35) 僅為回溯相容性的目的。 Collation sysname 資料行的定序 (Collation)。非字元資料型別則為 NULL。 為識別資料行所傳回的額外結果集: 資料行名稱 資料型別 描述 Identity nvarchar(128) 其資料型別被宣稱為識別 (Identity) 的資料行名稱。 Seed numeric 識別 (Identity) 資料行的起始值 Increment numeric 此資料行值的遞增值。 Not For Replication int 當複寫登入 (如 sqlrepl) 在資料表中插入資料時,IDENTITY 屬性並不會強制執行: 1 = 真 0 = 偽 為資料行所傳回的額外結果集: 資料行名稱 資料型別 描述 RowGuidCol sysname 全域唯一識別項資料行的名稱 為檔案群組所傳回的額外結果集: 資料行名稱 資料型別 描述 Data_located_on_filegroup nvarchar(128) 資料所在的檔案群組 (「主要」、「次要」或「交易記錄檔」)。 為索引所傳回的額外結果集: 資料行名稱 資料型別 描述 index_name sysname 索引名稱 Index_description varchar(210) 索引描述 index_keys nvarchar(2078) 藉以建立索引的資料行名稱 為條件約束所傳回的額外結果集: 資料行名稱 資料型別 描述 constraint_type nvarchar(146) 條件約束型別。 constraint_name nvarchar(128) 條件約束名稱 delete_action nvarchar(9) 指出 DELETE 動作的設定:No Action (無動作)、CASCADE、或者 N/A。 (僅適用於 FOREIGN KEY 條件約束。) update_action nvarchar(9) 指出 UPDATE 動作的狀態:No Action (無動作)、Cascade (串聯)、或 N/A。 (僅適用於 FOREIGN KEY 條件約束。) status_enabled varchar(8) 指出是否啟用條件約束:Enabled (啟用)、Disabled (停用) 或 N/A。(僅適用於 CHECK 與 FOREIGN KEY 條件約束。) status_for_replication varchar(19) 指出條件約束是否可以複寫。(僅適用於 CHECK 與 FOREIGN KEY 條件約束。) constraint_keys nvarchar(2078) 構成條件約束的資料行名稱,若為預設值與規則,則指定義此預設值或規則的文字。 為引用物件所傳回的額外結果集: 資料行名稱 資料型別 描述 Table is referenced by nvarchar(516) 指定引用此資料表的其它資料庫物件。 如果 name 是一個系統預存程序或延伸預存程序,sp_help 會傳回下列結果集。 資料行名稱 資料型別 描述 Parameter_name nvarchar(128) 預存程序參數名稱 Type nvarchar(128) 預存程序參數資料型別 Length smallint 實體儲存長度上限 (單位為位元組) Prec int 有效位數 (總位數)。 Scale int 小數點位置右邊的有效位數。 Param_order smallint 參數的順序 備註 sp_help 程序只會在現行資料庫中尋找物件。 若未指定 name,sp_help 便會列出現行資料庫中所有物件的物件名稱、擁有者以及物件型別。sp_helptrigger 則提供觸發程序的相關資訊。 權限 執行權限預設為授與 public 角色。 範例 A. 傳回所有物件的相關資訊 此範例列出 sysobjects 中每個物件的相關資訊。 USE master EXEC sp_help B. 傳回單一物件的相關資訊 此範例顯示了 publishers 資料表的相關資訊。 USE pubs EXEC sp_help publishers 另請參閱 sp_helpgroup sp_helpindex sp_helprotect sp_helpserver sp_helptrigger sp_helpuser 系統預存程序
系統時間:2024-03-29 4:41:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!