SQLSERVER中 根據字段名稱查找所在表格名稱的方法:
成都創(chuàng)新互聯(lián)專注于常山企業(yè)網站建設,自適應網站建設,商城系統(tǒng)網站開發(fā)。常山網站建設公司,為常山等地區(qū)提供建站服務。全流程按需制作,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務
一、語句的思路:
SQLSERVER的兩個系統(tǒng)表:1、保存表格字段屬性的:syscolumns 2、保存數(shù)據庫對象屬性的:sysobjects ,它們都包含對象ID字段,所以可以使用兩個表格的ID字段,作為表格聯(lián)合檢索依據來進行檢索。
二、相關系統(tǒng)表格簡介:
1、syscolumns :每個表和視圖中的每列在表中占一行,存儲過程中的每個參數(shù)在表中也占一行。
2、sysobjects :在數(shù)據庫內創(chuàng)建的每個對象(約束、默認值、日志、規(guī)則、存儲過程等)在表中占一行。
三、根據字段名稱檢索所在表格名稱
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關聯(lián)兩個表格
四、檢索結果如圖:
五、注意:因為不同表格可能有相同的字段名稱,所以結果有可能不只一條。
--查詢數(shù)據庫里所有表名和字段名的語句
--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
---------以下為其他數(shù)據庫查詢表----------
--ORACLE
查看所有表名:
SELECT
TABLE_NAME
FROM
USER_TABLES
--ACCESS
查看所有表名:
SELECT
NAME
FROM
MSYSOBJECTS
WHERE
TYPE=1
AND
FLAGS=0
--MSYSOBJECTS
是系統(tǒng)對象,默認情況是隱藏的。通過工具、選項、視圖、顯示、系統(tǒng)對象可以使之顯示出來。
拼接字符串就可以啊,表名定義一個變量
declare @stable varchar(20) --定義表名
declare @ssql varchar (1000)--要執(zhí)行的sql語句
set @stable='data'+@sdate--@Sdate 是你轉換過的字符,比如你的就是200702可以用substring截取
@ssql='你的相應條件'+stable
exec (@ssql ) 就可以了,我時常做項目都是這樣動態(tài)的。不明白的百度hi問我,但是要記得給我最佳答案啊,呵呵