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

2021-06-29 16:39:22 字數 1450 閱讀 1352

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查詢語句急

個人認為樓上的回答有2個問題 第7小題,如果高學分課程這張表存在,那sql語句會出錯,應該先要用if not exist語句判斷這張表是否存在,如果存在,則用drop table語句刪除這張表才執行建立表的語句。第8小題應為select from 學生表 where year 出生日期 1993 o...

SQL語句查詢問題,高手請現身,一個SQL語句查詢問題,高手請現身

因sql表沒有記錄號屬性,所以所謂第一行到第n行,在沒有給出排序條件的情況下,是不能確定的記錄集 所以,您需要給出排序條件或對錶按一定的欄位進行了索引,才能確定哪一條記錄是第幾行 比如,您是要按a排序,那不就是全部記錄嗎?就不需要查詢條件了 如果是按b排序或索引,即麼可以這樣求您的記錄集 selec...

資料庫sql語句怎麼查詢數值的後面有幾位小數點

什麼資料庫啊 以sqlserver為例 select len cast 12.134 as varchar charindex cast 12.134 as varchar 的後面有3位小數,怎麼用sql語句將 declare a decimal 6,3 set a 12.134 select a ...