sql中只知道欄位名要查在哪張表怎麼查啊

時間 2021-10-14 22:25:42

1樓:仁山智慧水

這個每種資料庫不一樣的

db2中:select tabname from syscat.columns where tabschema='x' and colname='欄位名'

這裡,x指的是db2的模式。

mysql中:select table_name from information_schema.columns where table_schema='y' and column_name='欄位名'

這裡y指的是資料庫的名稱。

其他資料庫應該也會有個系統表存放這些資訊,表名以及這些欄位的含義都是可以見面知義的,按著這個思路相信你能找到

2樓:匿名使用者

select a.name from (select object_id(name)as id,name from sysobjects where xtype='u') as a,syscolumns where a.id=syscolumns.

id and syscolumns.name=欄位名這樣就行了~

3樓:匿名使用者

挺難的,我也沒想到怎麼做,表可以不同,但是裡面的欄位可以是相同的。

sql中如何根據欄位名查詢該欄位名存在於資料庫的哪些表中?

4樓:檀時芳夔霜

這個要結合兩個表來進行查詢一個是sysobjects一個是syscolumns。他們有個共同的欄位是id來進行聯絡。查詢的**如下:

select

*from

sysobjects

swhere

type='u'

andid

in(select

idfrom

syscolumns

swhere

s.name='待查詢欄位名')

5樓:匿名使用者

上處的欄位名是指的表中的列名 還是指的 列中某一個 值。

如果是指的列名的話,很簡單

select sysobjects.name as tablename,syscolumns.name as columnname

from syscolumns join sysobjects on sysobjects.id = syscolumns.id

where syscolumns.name like '%此處為列名%'

如果是指的一個值的話,要遍歷資料庫了。如下:

declare@str varchar(100)

set@str='張三'--要搜尋的字串

declare@s varchar(8000)

declaretb cursorlocalfor

selects='if exists(select 1 from ['+b.name+'] where convert(varchar,['+a.name+']) like ''%'+@str+'%'')

print ''select ['+a.name+'] from ['+b.name+']'''

fromsyscolumns a joinsysobjects b ona.id=b.id

whereb.xtype='u'anda.status>=0

--所查列的欄位型別

anda.xusertype in(175,239,231,167,56,60,108,106)

opentb

fetchnextfromtb into@s

while @@fetch_status=0

begin

exec(@s)

fetchnextfromtb into@s

endclosetb

deallocatetb

在sql資料庫中,怎麼查詢一個表中有哪些欄位

6樓:友利葉矯儀

select

name

from

sys.columns

where

object_id

=object_id('要查詢的表名');

注意,表名前後有單引號,是字串。

用sql語句查詢一個欄位值存在於哪張表,該怎麼寫sql語句?

7樓:匿名使用者

這需要用儲存過程來實現,基本方法如下,比如查詢全庫中所有欄位值為「張三」的屬於哪張表,可用如下方法:

declare @cloumns varchar(40)

declare @tablename varchar(40)

declare @str varchar(40)

declare @counts int

declare @sql nvarchar(2000)

declare mycursor cursor for

select a.name as columns, b.name as tablename from syscolumns a,sysobjects b,systypes c

where a.id = b.id

and b.type = 'u'

and a.xtype=c.xtype

and c.name like '%char%'

set @str='張三'

open mycursor

fetch next from mycursor into @cloumns,@tablename

while(@@fetch_status = 0)

begin

set @sql='select  @tmp_counts=count(*) from ' +@tablename+ ' where ' +@cloumns+' = ''' +@str+ ''''

execute sp_executesql  @sql,n'@tmp_counts int out',@counts out

if @counts>0

begin

print '表名為:'+@tablename+',欄位名為'+@cloumns

endfetch next from mycursor into @cloumns,@tablename

endclose mycursor

deallocate mycursor

結果如圖:

顯示的就是含有張三這個內容的表名及欄位名

8樓:匿名使用者

不知道表名的情況下,整個資料庫找某個字元資訊

請勿在 生產資料庫上使用.

9樓:匿名使用者

這個不同的資料庫是不同的

10樓:匿名使用者

樓上~~反了吧

update table set newcol = oldcol

11樓:陽光小衚衕

t newcol = oldcol

Sql查詢表中除了某個欄位以外的所有欄位的方法

select name from syscolumns where id select max id from sysobjects where xtype u and name 表名 然後去查不等於column1的值不就ok了 方法就這樣了,具體你自己寫去吧 有是有,不過要通過系統表來差,而且語句...

SQL怎樣判斷欄位中是否存在某值

莘深潮朝 使用函式 charindex,第一個引數是你要查詢的字元,第二個引數是要在哪個字元中查詢 比如 select charindex 1 123456 返回1所在的位置 mysql 的myisam儲存引擎可以支援全文檢索,通常mysql的預設儲存引擎就是myisam,你可以把要查詢的欄位建立索...

sql中查詢多個欄位時,group by 要怎麼使用

惠惠 你根據到貨地點order by排序即可,不需要group by。sql語言,是結構化查詢語言 structured query language 的簡稱。sql語言是一種資料庫查詢和程式設計語言,用於存取資料以及查詢 更新和管理關聯式資料庫系統,同時也是資料庫指令碼檔案的副檔名。sql語言是高...