--查詢(xún)數(shù)據(jù)庫(kù)里所有表名和字段名的語(yǔ)句

成都創(chuàng)新互聯(lián)長(zhǎng)期為1000多家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為廣宗企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),廣宗網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
--SQL
查詢(xún)所有表名:
SELECT
NAME
FROM
SYSOBJECTS
WHERE
TYPE='U'
SELECT
*
FROM
INFORMATION_SCHEMA.TABLES
--查詢(xún)表的所有字段名:
SELECT
NAME
FROM
SYSCOLUMNS
WHERE
ID=OBJECT_ID('
表名'
)
SELECT
*
FROM
INFORMATION_SCHEMA.TABLES
SELECT
*
FROM
INFORMATION_SCHEMA.VIEWS
SELECT
*
FROM
INFORMATION_SCHEMA.COLUMNS
---------以下為其他數(shù)據(jù)庫(kù)查詢(xún)表----------
--ORACLE
查看所有表名:
SELECT
TABLE_NAME
FROM
USER_TABLES
--ACCESS
查看所有表名:
SELECT
NAME
FROM
MSYSOBJECTS
WHERE
TYPE=1
AND
FLAGS=0
--MSYSOBJECTS
是系統(tǒng)對(duì)象,默認(rèn)情況是隱藏的。通過(guò)工具、選項(xiàng)、視圖、顯示、系統(tǒng)對(duì)象可以使之顯示出來(lái)。
SQLSERVER中 根據(jù)字段名稱(chēng)查找所在表格名稱(chēng)的方法:
一、語(yǔ)句的思路:
SQLSERVER的兩個(gè)系統(tǒng)表:1、保存表格字段屬性的:syscolumns 2、保存數(shù)據(jù)庫(kù)對(duì)象屬性的:sysobjects ,它們都包含對(duì)象ID字段,所以可以使用兩個(gè)表格的ID字段,作為表格聯(lián)合檢索依據(jù)來(lái)進(jìn)行檢索。
二、相關(guān)系統(tǒng)表格簡(jiǎn)介:
1、syscolumns :每個(gè)表和視圖中的每列在表中占一行,存儲(chǔ)過(guò)程中的每個(gè)參數(shù)在表中也占一行。
2、sysobjects :在數(shù)據(jù)庫(kù)內(nèi)創(chuàng)建的每個(gè)對(duì)象(約束、默認(rèn)值、日志、規(guī)則、存儲(chǔ)過(guò)程等)在表中占一行。
三、根據(jù)字段名稱(chēng)檢索所在表格名稱(chēng)
select?syscolumns.name,sysobjects.name?--syscolumns.name:字段名、sysobjects.name:表格名稱(chēng)
from?syscolumns,sysobjects?
where?syscolumns.name?=?'gc_lczt'?and?syscolumns.id?=?sysobjects.id;--以字段名稱(chēng)'gc_lczt'為例,使用字段ID關(guān)聯(lián)兩個(gè)表格
四、檢索結(jié)果如圖:
五、注意:因?yàn)椴煌砀窨赡苡邢嗤淖侄蚊Q(chēng),所以結(jié)果有可能不只一條。
SQL中修改一個(gè)表的列名的步驟如下:
1、首先我們打開(kāi)SQL軟件。
2、然后右鍵點(diǎn)擊想要修改的列名。
3、點(diǎn)擊欄目框中的修改。
4、 點(diǎn)擊完畢之后,我們這里可以看到的是在兩側(cè)的列名值是一樣的? ,此時(shí)輸入你想要修改的新的列名即可完成修改。
5、? ?然后ctrl+s保存,保存成功之后,隨后在列名上右擊選擇刷新,就可以確認(rèn)修改成功了
結(jié)果代碼是:?建表后,設(shè)置表/字段的注釋信息。
下面是 讀取表/字段 的說(shuō)明備注 的 SQL 語(yǔ)句。
獲取數(shù)據(jù)庫(kù)表清單:
select?top?1000?
ROW_NUMBER()?OVER?(ORDER?BY?a.object_id)?AS?No,??
a.name?AS?表名,?
isnull(g.[value],'-')?AS?說(shuō)明
from?
sys.tables?a?left?join?sys.extended_properties?g?
on?(a.object_id?=?g.major_id?AND?g.minor_id?=?0)
No?表名?說(shuō)明
1?test_table?測(cè)試表
2?test_main?-
獲取數(shù)據(jù)庫(kù)表的字段清單 [這里是查看 test_table 表的字段]
SELECT
a.column_id?AS?No,
a.name?AS?列名,
isnull(g.[value],'-')?AS?說(shuō)明
FROM
sys.columns?a?left?join?sys.extended_properties?g
on?(a.object_id?=?g.major_id?AND?g.minor_id?=?a.column_id)
WHERE
object_id?=
(SELECT?object_id?FROM?sys.tables?WHERE?name?=?'test_table')
No?列名?說(shuō)明
1?Test_ID?主鍵(自增長(zhǎng))
2?Test_Key?種類(lèi)
3?Test_Value?數(shù)值
4?Test_Type?內(nèi)部類(lèi)型
5?Test_BelongTo?從屬關(guān)系
6?Test_Grade?等級(jí)
7?Test_Remark?備注
8?Test_Visible?是否可見(jiàn)
-----
更加詳細(xì)一點(diǎn)的信息
SELECT
col.name?AS?列名,
typ.name?as?數(shù)據(jù)類(lèi)型,
col.max_length?AS?占用字節(jié)數(shù),
col.precision?AS?數(shù)字長(zhǎng)度,
col.scale?AS?小數(shù)位數(shù),
col.is_nullable??AS?是否允許非空,
col.is_identity??AS?是否自增,
case?when?exists?
(?SELECT?1?
FROM?
sys.indexes?idx?
join?sys.index_columns?idxCol?
on?(idx.object_id?=?idxCol.object_id)
WHERE
idx.object_id?=?col.object_id
AND?idxCol.index_column_id?=?col.column_id?
AND?idx.is_primary_key?=?1
)?THEN?1?ELSE?0?END??AS?是否是主鍵
FROM
sys.columns?col?left?join?sys.types?typ?on?(col.system_type_id?=?typ.system_type_id)
WHERE
col.object_id?=
(SELECT?object_id?FROM?sys.tables?WHERE?name?=?'test_table')
SQL Server 2005 的 Microsoft SQL Server Management Studio Express
沒(méi)有 帶列名一起復(fù)制。 湊合著看看吧,就不手動(dòng)寫(xiě)列名了。
Test_ID?? ?int?? ?4?? ?10?? ?0?? ?0?? ?1?? ?1?? ?主鍵(自增長(zhǎng))
Test_Key?? ?varchar?? ?10?? ?0?? ?0?? ?0?? ?0?? ?0?? ?種類(lèi)
Test_Value?? ?varchar?? ?20?? ?0?? ?0?? ?0?? ?0?? ?0?? ?數(shù)值
Test_Type?? ?int?? ?4?? ?10?? ?0?? ?0?? ?0?? ?0?? ?內(nèi)部類(lèi)型
Test_BelongTo?? ?int?? ?4?? ?10?? ?0?? ?1?? ?0?? ?0?? ?從屬關(guān)系
Test_Grade?? ?int?? ?4?? ?10?? ?0?? ?1?? ?0?? ?0?? ?等級(jí)
Test_Remark?? ?varchar?? ?50?? ?0?? ?0?? ?1?? ?0?? ?0?? ?備注
Test_Visible?? ?bit?? ?1?? ?1?? ?0?? ?1?? ?0?? ?0?? ?是否可見(jiàn)
拼接字符串就可以啊,表名定義一個(gè)變量
declare @stable varchar(20) --定義表名
declare @ssql varchar (1000)--要執(zhí)行的sql語(yǔ)句
set @stable='data'+@sdate--@Sdate 是你轉(zhuǎn)換過(guò)的字符,比如你的就是200702可以用substring截取
@ssql='你的相應(yīng)條件'+stable
exec (@ssql ) 就可以了,我時(shí)常做項(xiàng)目都是這樣動(dòng)態(tài)的。不明白的百度hi問(wèn)我,但是要記得給我最佳答案啊,呵呵
本文標(biāo)題:sqlserver表名,sqlserver表名無(wú)效
網(wǎng)頁(yè)鏈接:http://chinadenli.net/article14/dseesde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、自適應(yīng)網(wǎng)站、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站制作、標(biāo)簽優(yōu)化、小程序開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)