跪求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樓:匿名使用者

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

mysql查詢最近幾天的資料sql語句怎樣寫,給幾個例子

例如有一個 認證表 id 認證表主鍵 user 賬號 username 使用者名稱 logintime 認證時間 logouttime 登出時間 我想查詢最近上線的3條資料,我可以這樣寫sqlselect from 認證表 order by logintime desc limit 1,3 執行就可...

SQL資料庫查詢問題怎麼用這個語句

如果只是兩個表,可以用union 把這些資料都查出來。select 列0,列1 from dbo.1 5where 列1 10327177 union select 列0,列1 from dbo.35wwhere 列1 10327177 如果有更新其他表,而這些表有一定的規律性,就是可以用迴圈 動態...

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

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