SQL語句,在資料庫的所有表裡查詢某乙個字段值

2022-02-15 16:12:01 字數 1755 閱讀 2188

create

proc full_search(@string

varchar(50))

asbegin

declare

@tbname

varchar(50)

declare tbroy cursor

forselect name from sysobjects

where xtype='u

'--第乙個游標遍歷所有的表

open tbroy

fetch

next

from tbroy into

@tbname

while

@@fetch_status=0

begin

declare

@colname

varchar(50)

declare colroy cursor

forselect name from syscolumns

where id=

object_id(@tbname) and xtype in (

select xtype from systypes

where name in ( '

varchar

', '

nvarchar

', '

char

', '

nchar

') --

資料型別為字元型的字段

) --

第二個游標是第乙個游標的巢狀游標,遍歷某個表的所有字段

open colroy

fetch

next

from colroy into

@colname

while

@@fetch_status=0

begin

declare

@sql

nvarchar(1000),@j

intselect

@sql='

select @i=count(1) from '+

@tbname+'

where '+

@colname+'

like '+

'''%'+

@string+'

%'''

exec sp_executesql @sql,n'

@i int output

',@i

=@j output --

輸出滿足條件表的記錄數

if@j

>

0begin

select 包含字串的表名=

@tbname

--exec( 'select distinct '+@colname+' from ' +@tbname + ' where '+ @colname+ ' like '+ '''%'+@string+ '%''')

endfetch

next

from colroy into

@colname

endclose colroy

deallocate colroy

fetch

next

from tbroy into

@tbname

endclose tbroy

deallocate tbroy

endgo

比如查的「首頁列表」方法:

exec full_search '首頁列表'

sql語句 刪除資料庫所有表裡的資料

declare name nvarchar 255 sql nvarchar 4000 declare task cursor cursor local for 游標定義 select name from sysobjects where type u 獲取當前資料庫中的所有表的表名 open ta...

資料庫 SQL基本增刪改查語句

新增 insert into empolyee name,age values 李四 男 21 inset into 表名 列名 values 對應資料 刪除delete from empolyee where id 2 delete from 表名 where 條件 and 並且 or或者 bet...

MySQL資料庫 SQL語句增刪改查

mysql uroot p 回車後輸入密碼,當前設定的密碼為mysql quit 和 exit 或 ctrl d 檢視版本 select version prompt python show databases use 資料庫名 select database create database 資料庫...