跪求sql語句高手查詢整個資料庫中的特定字元

時間 2021-06-29 16:38:34

1樓:匿名使用者

declare @str nvarchar(10)

declare @tablename varchar(50)

declare @colname varchar(50)

declare @counts int

declare @sql nvarchar(2000)--以上定義變數

declare cur1 cursor for

select a.name tablename,b.name colname from sys.

objects a,syscolumns b where a.object_id=b.id and a.

type_desc='user_table'--定義遊標

set @str='海' --設定要查詢的字元

open cur1 --開啟遊標

fetch next from cur1 into @tablename,@colname

while(@@fetch_status = 0) --迴圈

begin

set @sql=n'select  @counts=count(*) from ' + @tablename + '   where  charindex('''+@str+''','+@colname+')>0'

exec sp_executesql @sql,n'@counts int output',@counts output --執行動態sql

if @counts>0 --判斷某個表某個欄位是否存在特定字元

begin

print @tablename+','+@colname --列印表名及欄位名

endfetch next from cur1 into @tablename,@colname

endclose cur1 --關閉遊標

deallocate cur1 --釋放遊標

2樓:匿名使用者

---給你一個提取所有表名和欄位名的語句

提取表名 欄位名稱 型別名稱

select sname.name,scol.name,stype.name,stype.max_length

from sysobjects sname, sys.all_columns scol,sys.types stype where sname.type='u' and

scol.object_id=sname.id and stype.system_type_id=scol.system_type_id

order by sname.name

你說的那個非常難做啊,很理想化是遍歷的概念

3樓:匿名使用者

這種檢查工作我想是不應該在這個時候進行,應該在資料追加到資料庫之前來進行,就算你能找出實現這種功能的命令,那要檢查一次資料庫得多長時間啊!追加一條查一次?不現實!換實現方法吧!

如何查詢某個資料庫的某個表欄位,SQL資料庫,如何查詢資料庫內含有某一列(某欄位,如name)的所有表

流浪還不行嗎 2008沒用過,不懂!不過我覺得應該和2003或者2005是一樣的操作,因為他們都使用的sql語句,變化應該不是很大! select b.name 表名,a.name 欄位名 from syscolumns a join sysobjects b on a.id b.id where ...

SQL下如何查詢來自兩個資料庫的資料

丁鐵鷹 select xm,nl,dygz from a,b where 後接兩個資料庫的連線條件即可 康習之 建立dblink來檢視兩個庫的資料。在a庫中建立b庫的dblink這樣就可以查詢了。select from a inner join b b dblink b on where a.id ...

SQL重複資料只顯示一條,查詢語句怎麼寫

吳佳航 sql重複資料只顯示一條,查詢語句編碼的寫法是 如果是所有欄位都重複,使用 distinct。如果部分欄位重複,只能使用group by 或是其他的方法。結構化查詢語言 structured query language 簡稱sql 發音 es kju el s q l 是一種特殊目的的程式...