獲取SQL Server表字段的各種屬性實(shí)例代碼
-- 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 標(biāo)識(shí), b.name AS 類(lèi)型,
a.length AS 占用字節(jié)數(shù), COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 長(zhǎng)度,
a.xscale AS 小數(shù), a.isnullable AS 可空, ISNULL(e.text, '') AS 默認(rèn)值, ISNULL(g.[value],
'') AS 字段說(shuō)明
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 = '表名稱(chēng)')
--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一樣擁有慢查詢(xún)?nèi)罩镜牟僮鞣椒?Slow Query Log
SQL Server一直以來(lái)被人詬病的一個(gè)問(wèn)題是缺少了像MySQL的慢日志功能,程序員和運(yùn)維無(wú)法知道數(shù)據(jù)庫(kù)過(guò)去歷史的慢查詢(xún)語(yǔ)句,本文介紹了利用SQL Server的擴(kuò)展事件捕獲慢查詢(xún)語(yǔ)句的功能,也就是我們常說(shuō)的開(kāi)源數(shù)據(jù)庫(kù)的慢日志,感興趣的朋友一起看看吧2024-07-07
GridView自定義分頁(yè)的四種存儲(chǔ)過(guò)程
首先要說(shuō)說(shuō)為什么不用GridView的默認(rèn)的分頁(yè)功能,GridView控件并非真正知道如何獲得一個(gè)新頁(yè)面,它只是請(qǐng)求綁定的數(shù)據(jù)源控件返回適合規(guī)定頁(yè)面的行,分頁(yè)最終是由數(shù)據(jù)源控件完成。2009-12-12
數(shù)據(jù)庫(kù)日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(1)
下面小編就為大家?guī)?lái)一篇數(shù)據(jù)庫(kù)基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-07-07
sql server把退款總金額拆分到盡量少的多個(gè)訂單中詳解
這篇文章主要給大家介紹了關(guān)于sql server把退款總金額拆分到盡量少的多個(gè)訂單中的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
EXEC(EXECUTE)函數(shù)訪問(wèn)INSERTED或DELETED的內(nèi)部臨時(shí)觸發(fā)表
近段時(shí)間,MS SQL方面,一直需要開(kāi)發(fā)動(dòng)態(tài)方面的存儲(chǔ)過(guò)程或是觸發(fā)器以及表函數(shù)。因?yàn)槌绦蛟O(shè)計(jì)一開(kāi)始就是讓用戶(hù)動(dòng)態(tài)添或是刪除一個(gè)表的字段,然而這個(gè)表的相關(guān)存儲(chǔ)過(guò)程或是觸發(fā)器以及為報(bào)表準(zhǔn)備的表函數(shù)也會(huì)隨之這個(gè)表的字段變化而變化2012-01-01
SQL中的單條件判斷函數(shù)IF和多條件判斷CASE WHEN的用法
MySQL提供了IF、IFNULL、CASE等條件判斷函數(shù),本文就來(lái)介紹一下SQL中的單條件判斷函數(shù)IF和多條件判斷CASE WHEN的用法,感興趣的可以了解一下2023-10-10
如何將sql執(zhí)行的錯(cuò)誤消息記錄到本地文件中實(shí)現(xiàn)過(guò)程
sql語(yǔ)句的錯(cuò)誤信息都可以在sys.messages表里面找到,下面與大家分享下將sql 執(zhí)行的錯(cuò)誤消息記錄到本地文件中,不會(huì)的朋友可以參考下哈2013-05-05
Sql?Server?"用戶(hù)登錄失敗,錯(cuò)誤編18456"的解決過(guò)程
在我們使用數(shù)據(jù)庫(kù)的時(shí)候,偶爾會(huì)遇到一些登錄上的錯(cuò)誤提示,下面這篇文章主要給大家介紹了關(guān)于Sql?Server?"用戶(hù)登錄失敗,錯(cuò)誤編18456"的解決過(guò)程,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09

