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