国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

獲取SQL Server元數(shù)據(jù)的方法與配置

數(shù)據(jù)庫 SQL Server
以下的文章主要描述的是獲取SQL Server元數(shù)據(jù)的方法配置正確解決方案,假如你在實際操作中遇到相似的情況,但是你卻不知道對其如何正確的解決,那么以下的文章對你而言一定是良師益友。

此文章主要介紹的是獲取SQL Server元數(shù)據(jù)的方法配置的實際操作步驟,獲取SQL Server元數(shù)據(jù)的方法在實際操作是經常被用到了,所以你對其有更多的了解還是好的,以下就是文章的主要內容的詳細描述,望大家在瀏覽之后會對其有更深的了解。

元數(shù)據(jù)簡介

元數(shù)據(jù) (metadata) 最常見的定義為“有關數(shù)據(jù)的結構數(shù)據(jù)”,或者再簡單一點就是“關于數(shù)據(jù)的信息”,日常生活中的圖例、圖書館目錄卡和名片等都可以看作是元數(shù)據(jù)。在關系型數(shù)據(jù)庫管理系統(tǒng) (DBMS) 中,SQL Server元數(shù)據(jù)描述了數(shù)據(jù)的結構和意義。比如在管理、維護 SQL Server 或者是開發(fā)數(shù)據(jù)庫應用程序的時候,我們經常要獲取一些涉及到數(shù)據(jù)庫架構的信息:

 

某個數(shù)據(jù)庫中的表和視圖的個數(shù)以及名稱;

 

 

某個表或者視圖中列的個數(shù)以及每一列的名稱、數(shù)據(jù)類型、長度、精度、描述等;

 

 

某個表上定義的約束;

 

 

某個表上定義的索引以及主鍵/外鍵的信息。

 

 

下面我們將介紹幾種獲取SQL Server元數(shù)據(jù)的方法。

 

 

獲取元數(shù)據(jù)

 

 

使用系統(tǒng)存儲過程與系統(tǒng)函數(shù)訪問元數(shù)據(jù)

 

 

獲取元數(shù)據(jù)最常用的方法是使用 SQL Server 提供的系統(tǒng)存儲過程與系統(tǒng)函數(shù)。

 

 

系統(tǒng)存儲過程與系統(tǒng)函數(shù)在系統(tǒng)表和SQL Server元數(shù)據(jù)之間提供了一個抽象層,使得我們不用直接查詢系統(tǒng)表就能獲得當前數(shù)據(jù)庫對象的元數(shù)據(jù)。

 

 

常用的與元數(shù)據(jù)有關的系統(tǒng)存儲過程有以下一些:

 

系統(tǒng)存儲過程

sp_columns 返回指定表或視圖的列的詳細信息。

sp_databases 返回當前服務器上的所有數(shù)據(jù)庫的基本信息。

sp_fkeys 若參數(shù)為帶有主鍵的表,則返回包含指向該表的外鍵的所有表;若參數(shù)為帶有外鍵的表名,則返回所有同過主鍵/外鍵關系與該外鍵相關聯(lián)的所有表。

sp_pkeys 返回指定表的主鍵信息。

sp_server_info 返回當前服務器的各種特性及其對應取值。

sp_sproc_columns 返回指定存儲過程的的輸入、輸出參數(shù)的信息。

sp_statistics 返回指定的表或索引視圖上的所有索引以及統(tǒng)計的信息。

sp_stored_procedures 返回當前數(shù)據(jù)庫的存儲過程列表,包含系統(tǒng)存儲過程。

sp_tables 返回當前數(shù)據(jù)庫的所有表和視圖,包含系統(tǒng)表。

 

常用的與SQL Server元數(shù)據(jù)有關的系統(tǒng)函數(shù)有以下一些:

 

 

系統(tǒng)函數(shù)

 

COLUMNPROPERTY 返回有關列或過程參數(shù)的信息,如是否允許空值,是否為計算列等。

COL_LENGTH 返回指定數(shù)據(jù)庫的指定屬性值,如是否處于只讀模式等。

DATABASEPROPERTYEX 返回指定數(shù)據(jù)庫的指定選項或屬性的當前設置,如數(shù)據(jù)庫的狀態(tài)、恢復模型等。

OBJECT_ID 返回指定數(shù)據(jù)庫對象名的標識號

OBJECT_NAME 返回指定數(shù)據(jù)庫對象標識號的對象名。

OBJECTPROPERTY 返回指定數(shù)據(jù)庫對象標識號的有關信息,如是否為表,是否為約束等。

fn_listextendedproperty 返回數(shù)據(jù)庫對象的擴展屬性值,如對象描述、格式規(guī)則、輸入掩碼等。

 

由于我們無法直接利用到存儲過程與函數(shù)的返回結果,因此只有在我們關心的只是查詢的結果,而不需要進一步利用這些結果的時候,我們會使用系統(tǒng)存儲過程與系統(tǒng)函數(shù)來查詢SQL Server元數(shù)據(jù)。

 

 

例如,如果要獲得當前服務器上所有數(shù)據(jù)庫的基本信息,我們可以在查詢分析器里面運行:

 

EXEC sp_databases GO

在返回結果中我們可以看到數(shù)據(jù)庫的名稱、大小及備注等信息。

 

但是如果要引用這部分信息,或者存儲這部分信息以供后面使用,那么我們必須借助中間表來完成這個操作:

 

CREATE TABLE #sp_result ( DATABASE_NAME sysname, DATABASE_SIZE int, REMARKS varchar(254) NULL ) GO INSERT INTO #sp_result EXEC ('sp_databases') GO

 

使用信息架構視圖訪問元數(shù)據(jù)

 

 

信息架構視圖基于 SQL-92 標準中針對架構視圖的定義,這些視圖獨立于系統(tǒng)表,提供了關于 SQL Server 元數(shù)據(jù)的內部視圖。信息架構視圖的***優(yōu)點是,即使我們對系統(tǒng)表進行了重要的修改,應用程序也可以正常地使用這些視圖進行訪問。因此對于應用程序來說,只要是符合 SQL-92 標準的數(shù)據(jù)庫系統(tǒng),使用信息架構視圖總是可以正常工作的。

 

信息架構視圖

INFORMATION_SCHEMA.CHECK_CONSTRAINTS:返回有關列或過程參數(shù)的信息,如是否允許空值,是否為計算列等。

INFORMATION_SCHEMA.COLUMNS:返回當前數(shù)據(jù)庫中當前用戶可以訪問的所有列及其基本信息。

INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE:返回當前數(shù)據(jù)庫中定義了約束的所有列及其約束名。

INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE:返回當前數(shù)據(jù)庫中定義了約束的所有表及其約束名。

INFORMATION_SCHEMA.KEY_COLUMN_USAGE:返回當前數(shù)據(jù)庫中作為主鍵/外鍵約束的所有列。

INFORMATION_SCHEMA.SCHEMATA:返回當前用戶具有權限的所有數(shù)據(jù)庫及其基本信息。

INFORMATION_SCHEMA.TABLES:返回當前用戶具有權限的當前數(shù)據(jù)庫中的所有表或者視圖及其基本信息。

INFORMATION_SCHEMA.VIEWS:返回當前數(shù)據(jù)庫中的當前用戶可以訪問的視圖及其所有者、定義等信息。

由于這些信息架構都是以視圖的方式存在的,因此我們可以很方便地獲得并利用需要的信息。

 

例如,我們要得到某個表有多少列,可以使用以下語句:

 

 

SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS

 

WHERE TABLE_NAME='mytable'

 

使用系統(tǒng)表訪問元數(shù)據(jù)

 

 

雖然使用系統(tǒng)存儲過程、系統(tǒng)函數(shù)與信息架構視圖已經可以為我們提供了相當豐富的元數(shù)據(jù)信息,但是對于某些特殊的元數(shù)據(jù)信息,我們仍然需要直接對系統(tǒng)表進行查詢。因為SQL Server 將所有數(shù)據(jù)庫對象的信息均存放在系統(tǒng)表中,作為 SQL Server 的管理、開發(fā)人員,了解各個系統(tǒng)表的作用將有助于我們了解 SQL Server 的內在工作原理。

 

 

SQL Server 的系統(tǒng)表非常多,其中最常用的與SQL Server元數(shù)據(jù)查詢有關的表有如下一些:

 

syscolumns 存儲每個表和視圖中的每一列的信息以及存儲過程中的每個參數(shù)的信息。

syscomments 存儲包含每個視圖、規(guī)則、默認值、觸發(fā)器、CHECK 約束、DEFAULT 約束和存儲過程的原始 SQL 文本語句。

sysconstraints 存儲當前數(shù)據(jù)庫中每一個約束的基本信息。

sysdatabases 存儲當前服務器上每一個數(shù)據(jù)庫的基本信息。

sysindexes 存儲當前數(shù)據(jù)庫中的每個索引的信息。

sysobjects 存儲數(shù)據(jù)庫內的每個對象(約束、默認值、日志、規(guī)則、存儲過程等)的基本信息。

sysreferences 存儲所有包括 FOREIGN KEY 約束的列。

systypes 存儲系統(tǒng)提供的每種數(shù)據(jù)類型和用戶定義數(shù)據(jù)類型的詳細信息。

 

將系統(tǒng)存儲過程、系統(tǒng)函數(shù)、信息架構視圖與系統(tǒng)表結合使用,可以方便地讓我們獲得所有需要的SQL Server元數(shù)據(jù)信息。

 

 

示例:

 

1、 獲得當前數(shù)據(jù)庫所有用戶表的名稱。

SELECT OBJECT_NAME (id) FROM sysobjects WHERE xtype = 'U' AND OBJECTPROPERTY (id, 'IsMSShipped') = 0

其中主要用到了系統(tǒng)表 sysobjects以及其屬性 xtype,還有就是用到了 OBJECTPROPERTY 系統(tǒng)函數(shù)來判斷是不是安裝 SQL Server 的過程中創(chuàng)建的對象。

 

2、獲得指定表上所有的索引名稱。

 

SELECT name FROM sysindexes WHERE id = OBJECT_ID ('mytable') AND indid > 0

 

綜合實例

 

 

下面給出了一個存儲過程,它的作用是自動將當前數(shù)據(jù)庫的用戶存儲過程加密。

 

 

  1. DECLARE @sp_name nvarchar(400) DECLARE @sp_content nvarchar(2000) DECLARE  
  2. @asbegin int declare @now datetime select @now = getdate() DECLARE sp_cursor  
  3. CURSOR FOR SELECT object_name(id) FROM sysobjects WHERE xtype = 'P' AND type =  
  4. 'P' AND crdate < @now AND OBJECTPROPERTY(id, 'IsMSShipped')=0 OPEN sp_cursor   
  5. FETCH NEXT FROM sp_cursor INTO @sp_name WHILE @@FETCH_STATUS = 0 BEGIN  
  6. SELECT @sp_content = text FROM syscomments WHERE id = OBJECT_ID(@sp_name)   
  7. SELECT @asbegin = PATINDEX ( '%AS' + char(13) + '%', @sp_content) SELECT @sp_content =  
  8. SUBSTRING(@sp_content, 1, @asbegin - 1) + ' WITH ENCRYPTION AS' + SUBSTRING (@sp_content,   
  9. @asbegin+2, LEN(@sp_content)) SELECT @sp_name = 'DROP PROCEDURE [' + @sp_name + ']'  
  10. EXEC sp_executesql @sp_name EXEC sp_executesql @sp_content FETCH NEXT FROM sp_cursor INTO  
  11. @sp_name END CLOSE sp_cursor DEALLOCATE sp_cursor  

該存儲過程利用了 sysobjects 和 syscomments 表,并巧妙地修改了原存儲過程的 SQL 定義語句,將 AS 修改為了 WITH ENCRYPTION AS,從而達到了加密存儲過程的目的。本存儲過程在 SQL Server 2000 上通過。

【編輯推薦】

  1. 實現(xiàn)SQL Server 2005中的模糊查找包并不難
  2. SQL Server數(shù)據(jù)庫如何正確加密?
  3. 如何實現(xiàn)SQL Server臨時表的創(chuàng)建?
  4. 實現(xiàn)SQL Server動態(tài)游標的創(chuàng)建步驟
  5. SQL Server數(shù)據(jù)庫中優(yōu)化索引的妙招
責任編輯:佚名 來源: csdn.net
相關推薦

2009-03-05 14:43:39

元數(shù)據(jù)管理SQL Server

2010-07-05 09:34:07

SQL Server元

2009-04-16 18:25:55

2010-10-19 17:34:10

sql server主

2009-04-17 13:27:43

SQL Server遠程備份鏡像

2011-08-29 15:40:00

SQL Server獲取TEXT字段的內容DATALENGTH

2011-04-06 11:05:21

SQL Server數(shù)交換數(shù)據(jù)

2010-09-14 10:47:45

sql server存

2010-09-02 11:56:21

SQL刪除

2010-09-08 14:22:19

sql server端口配置

2010-09-13 16:06:48

sql server數(shù)

2010-09-14 09:53:52

sql server還

2010-09-13 10:55:44

SQL Server

2010-09-27 17:04:15

SQL Server日

2010-10-19 14:11:20

SQL SERVER恢

2009-05-11 14:19:49

數(shù)據(jù)遷移OracleSQL Server

2009-03-30 10:56:58

SQL Server數(shù)據(jù)庫死鎖數(shù)據(jù)庫

2010-09-25 09:12:44

SQL Server

2010-07-07 14:57:25

SQL Server線

2011-03-30 15:36:31

SQL Server
點贊
收藏

51CTO技術棧公眾號

超碰97在线播放| 亚洲日本欧美天堂| 91麻豆国产自产在线观看亚洲| 在线看免费av| 26uuu成人| 视频一区视频二区视频| 欧美国产日韩一区| 亚洲精品v欧美精品v日韩精品| 欧美日韩免费在线观看| 99r精品视频| 97精品国产福利一区二区三区| 久久中文资源| 日日天天久久| 伊人久久大香线蕉综合网蜜芽| 成人亚洲视频| 日本中文字幕视频一区| 亚洲精品在线影院| 九热视频在线观看| 欧美亚洲动漫另类| 国产成人午夜精品5599 | 青青在线视频观看| 欧美精品视频www在线观看| 欧美午夜片在线观看| 欧美一级免费观看| 亚洲桃花岛网站| 午夜精品久久久久久久久久久久| 6080yy精品一区二区三区| 成人av番号网| 午夜精品一区二区三区av| 国产z一区二区三区| 999热视频在线观看| 日韩hmxxxx| 日韩成人手机在线| 免费观看黄色网| 国产69久久| 黄色精品视频| 999视频在线免费观看| 中国china体内裑精亚洲片| 97久久伊人激情网| 久久精品人成| 成人精品小视频| 成人性生交大片免费看午夜| 欧美gay视频| 欧美在线色图| 久久国产精品第一页| 亚洲深夜福利| 国产农村妇女毛片精品久久麻豆| 在线观看日韩电影| 久久久www成人免费精品| 91传媒视频免费| 久久精品视频免费播放| 97视频在线观看视频免费视频| 久久精品午夜一区二区福利| 日本熟妇人妻中出| 国产区在线看| 老司机精品视频在线播放| 三级精品在线观看| 91九色在线播放| 高潮久久久久久久久久久久久久| 另类在线视频| 久久9热精品视频| 欧美性xxxxx极品少妇| 午夜精品久久久久久久99黑人| 一级特黄录像免费播放全99| 成人美女av在线直播| 天堂资源在线亚洲视频| a天堂在线资源| 欧美天天视频| 一本一道综合狠狠老| 国产精品第10页| 九色免费视频| 日本不卡高清| 在线免费观看成人短视频| 999国产在线| 秋霞成人影院| 啪啪激情综合网| 一区二区视频在线| 91欧美视频网站| 少妇激情av一区二区| 欧美日韩亚洲一区| 日韩欧美久久一区| 午夜欧美激情| 欧美国产高潮xxxx1819| 亚洲香蕉伊在人在线观| 国产欧美精品va在线观看| 福利在线午夜| 亚洲人www| 日韩美女av在线| 人体内射精一区二区三区| 亚州精品国产| 亚洲免费在线观看视频| 亚洲小视频在线观看| 欧美精品自拍视频| 六月丁香久久丫| 欧美性猛交xxxx久久久| 日韩精品久久一区| 成人污版视频| 日韩激情一区| 亚洲观看高清完整版在线观看| 亚洲国产精品久久艾草纯爱 | 精品奇米国产一区二区三区| 欧美精品久久96人妻无码| 久久天堂影院| 亚洲精品高清视频在线观看| 农村寡妇一区二区三区| 亚洲视频一起| 国产91丝袜在线播放| 欧美人与物videos| 在线观看视频污| 天堂成人免费av电影一区| 日韩视频永久免费观看| 佐山爱痴汉视频一区二区三区| av播放在线观看| 奇米在线7777在线精品| 国产日韩欧美在线视频观看| 久久人体大尺度| 欧洲一区二区三区在线| 国产小视频精品| 在线观看欧美亚洲| 伊人久久大香| 亚洲欧美乱综合| 精品综合久久久| 怡红院成人在线| 狠狠色狠狠色综合系列| 精品国产一区二区三区久久久 | 日本女优一区| 精彩视频一区二区三区| 亚洲国产一区二区三区| 日韩精品不卡| 伊人久久一区| 亚洲福利电影网| 成人a在线视频| 涩涩涩久久久成人精品| www 久久久| 99精品黄色片免费大全| 亚洲一区二区三区视频播放| jizz18欧美18| 久久天天躁狠狠躁夜夜躁| 精品粉嫩aⅴ一区二区三区四区| 亚洲一区不卡| 欧美日韩成人综合天天影院 | 久久久精品2019中文字幕之3| 欧美伦理一区二区| 国产伦精品一区二区三区视频| 亚洲欧美综合区自拍另类| 99porn视频在线| 国产一区二区三区黄网站| 亚洲精品一区二区三区香蕉| 青青色在线视频| 美国欧美日韩国产在线播放| 色综合色综合久久综合频道88| 欧美另类自拍| 五月国产精品| 九九热爱视频精品视频| 精品久久久久久电影| 国产中文字幕日韩| 欧美交受高潮1| eeuss一区二区三区| 91蜜桃在线视频| 国产精品一卡二卡在线观看| 最好看的2019年中文视频| 日本一区免费| 成人国产一区二区三区精品麻豆| 国产中文字幕一区| 欧美国产日韩一区二区| 青青草在线免费观看| 久久99在线观看| 国产日韩欧美一区在线| 国产丝袜一区视频在线观看| 激情综合色综合啪啪开心| 日本午夜精品久久久久| 欧美精品久久久久久久久老牛影院| 国产日韩中文在线中文字幕| 中文字幕日韩av| 一区中文字幕电影| 国产精品乱人伦一区二区| 97精品视频在线| 国产91精品对白在线播放| 欧美成在线观看| 国模冰冰炮一区二区| 国产亚洲精品久久久久久牛牛 | 天堂资源av| 欧洲亚洲精品视频| 69成人在线| crdy在线观看欧美| 亚洲午夜久久| 在线综合欧美| 91视频观看视频| 欧美激情理论| 日本最黄一级片免费在线| 中文在线а√天堂| 神马日本精品| 一区二区三区国产在线| 成人午夜在线视频| 午夜视黄欧洲亚洲| 亚洲网友自拍偷拍| 日韩免费看网站| 欧美黑人xxxx| 蜜桃91精品入口| 久热精品在线播放|