獲取SQL Server表字段的各種屬性實例代碼
更新時間:2013年05月23日 18:03:34 作者:
下面的語句將實現(xiàn)獲取SQL Server表字段的各種屬性,感興趣的朋友可以參考下哈,希望對你有所幫助
復(fù)制代碼 代碼如下:
-- SQL Server 2000
SELECT a.name AS 字段名, CASE WHEN EXISTS
(SELECT 1
FROM sysobjects
WHERE xtype = 'PK' AND parent_obj = a.id AND name IN
(SELECT name
FROM sysindexes
WHERE indid IN
(SELECT indid
FROM sysindexkeys
WHERE id = a.id AND colid = a.colid)))
THEN '1' ELSE '0' END AS 主鍵, CASE WHEN COLUMNPROPERTY(a.id, a.name,
'IsIdentity') = 1 THEN '1' ELSE '0' END AS 標識, b.name AS 類型,
a.length AS 占用字節(jié)數(shù), COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 長度,
a.xscale AS 小數(shù), a.isnullable AS 可空, ISNULL(e.text, '') AS 默認值, ISNULL(g.[value],
'') AS 字段說明
FROM syscolumns a LEFT OUTER JOIN
systypes b ON a.xusertype = b.xusertype INNER JOIN
sysobjects d ON a.id = d.id AND d.xtype = 'U' AND
d.name <> 'dtproperties' LEFT OUTER JOIN
syscomments e ON a.cdefault = e.id LEFT OUTER JOIN
sysproperties g ON a.id = g.id AND a.colid = g.smallid LEFT OUTER JOIN
sysproperties f ON d.id = f.id AND f.smallid = 0
WHERE (d.name = '表名稱')
--2。SQL SERVER 2005
SELECT CASE WHEN EXISTS
(SELECT 1
FROM sysobjects
WHERE xtype = 'PK' AND parent_obj = a.id AND name IN
(SELECT name
FROM sysindexes
WHERE indid IN
(SELECT indid
FROM sysindexkeys
WHERE id = a.id AND colid = a.colid))) THEN '1' ELSE '0' END AS 'key', CASE WHEN COLUMNPROPERTY(a.id, a.name,
'IsIdentity') = 1 THEN '1' ELSE '0' END AS 'identity', a.name AS ColName, c.name AS TypeName, a.length AS 'byte', COLUMNPROPERTY(a.id, a.name,
'PRECISION') AS 'length', a.xscale, a.isnullable, ISNULL(e.text, '') AS 'default', ISNULL(p.value, '') AS 'comment'
FROM sys.syscolumns AS a INNER JOIN
sys.sysobjects AS b ON a.id = b.id INNER JOIN
sys.systypes AS c ON a.xtype = c.xtype LEFT OUTER JOIN
sys.syscomments AS e ON a.cdefault = e.id LEFT OUTER JOIN
sys.extended_properties AS p ON a.id = p.major_id AND a.colid = p.minor_id
WHERE (b.name = 'keyfactory') AND (c.status <> '1')
--b.name = 'Keyfactory','Keyfactory'為你想要查找的數(shù)據(jù)表。
--2、SQL SERVER 2005
SELECT CASE WHEN EXISTS
(SELECT 1
FROM sysobjects
WHERE xtype = 'PK' AND parent_obj = a.id AND name IN
(SELECT name
FROM sysindexes
WHERE indid IN
(SELECT indid
FROM sysindexkeys
WHERE id = a.id AND colid = a.colid))) THEN '1' ELSE '0' END AS 'key', CASE WHEN COLUMNPROPERTY(a.id, a.name,
'IsIdentity') = 1 THEN '1' ELSE '0' END AS 'identity', a.name AS ColName, c.name AS TypeName, a.length AS 'byte', COLUMNPROPERTY(a.id, a.name,
'PRECISION') AS 'length', a.xscale, a.isnullable, ISNULL(e.text, '') AS 'default', ISNULL(p.value, '') AS 'comment'
FROM sys.syscolumns AS a INNER JOIN
sys.sysobjects AS b ON a.id = b.id INNER JOIN
sys.systypes AS c ON a.xtype = c.xtype LEFT OUTER JOIN
sys.syscomments AS e ON a.cdefault = e.id LEFT OUTER JOIN
sys.extended_properties AS p ON a.id = p.major_id AND a.colid = p.minor_id
WHERE (b.name = 'keyfactory') AND (c.status <> '1')
--b.name = 'Keyfactory','Keyfactory'為你想要查找的數(shù)據(jù)表。
相關(guān)文章
SQL Server像MySQL一樣擁有慢查詢?nèi)罩镜牟僮鞣椒?Slow Query Log
SQL Server一直以來被人詬病的一個問題是缺少了像MySQL的慢日志功能,程序員和運維無法知道數(shù)據(jù)庫過去歷史的慢查詢語句,本文介紹了利用SQL Server的擴展事件捕獲慢查詢語句的功能,也就是我們常說的開源數(shù)據(jù)庫的慢日志,感興趣的朋友一起看看吧2024-07-07
數(shù)據(jù)庫日常練習(xí)題,每天進步一點點(1)
下面小編就為大家?guī)硪黄獢?shù)據(jù)庫基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07
sql server把退款總金額拆分到盡量少的多個訂單中詳解
這篇文章主要給大家介紹了關(guān)于sql server把退款總金額拆分到盡量少的多個訂單中的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
sqlserver還原數(shù)據(jù)庫的時候出現(xiàn)提示無法打開備份設(shè)備的解決方法(設(shè)備出現(xiàn)錯誤或設(shè)備脫)
今天在恢復(fù)數(shù)據(jù)庫的時候,因為是異地部分還原,出現(xiàn)提示 無法打開備份設(shè)備 E:\自動備份\ufidau8xTmp\UFDATA.BAK 。設(shè)備出現(xiàn)錯誤或設(shè)備脫,這里分享一下解決方法,需要的朋友可以參考一下2016-03-03
EXEC(EXECUTE)函數(shù)訪問INSERTED或DELETED的內(nèi)部臨時觸發(fā)表
近段時間,MS SQL方面,一直需要開發(fā)動態(tài)方面的存儲過程或是觸發(fā)器以及表函數(shù)。因為程序設(shè)計一開始就是讓用戶動態(tài)添或是刪除一個表的字段,然而這個表的相關(guān)存儲過程或是觸發(fā)器以及為報表準備的表函數(shù)也會隨之這個表的字段變化而變化2012-01-01
SQL中的單條件判斷函數(shù)IF和多條件判斷CASE WHEN的用法
MySQL提供了IF、IFNULL、CASE等條件判斷函數(shù),本文就來介紹一下SQL中的單條件判斷函數(shù)IF和多條件判斷CASE WHEN的用法,感興趣的可以了解一下2023-10-10
如何將sql執(zhí)行的錯誤消息記錄到本地文件中實現(xiàn)過程
sql語句的錯誤信息都可以在sys.messages表里面找到,下面與大家分享下將sql 執(zhí)行的錯誤消息記錄到本地文件中,不會的朋友可以參考下哈2013-05-05
Sql?Server?"用戶登錄失敗,錯誤編18456"的解決過程
在我們使用數(shù)據(jù)庫的時候,偶爾會遇到一些登錄上的錯誤提示,下面這篇文章主要給大家介紹了關(guān)于Sql?Server?"用戶登錄失敗,錯誤編18456"的解決過程,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2022-09-09

