declare @cloumns varchar(40)declare @tablename varchar(40)declare @str varchar(40)declare @counts intdeclare @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.idand b.type = "U" and a.xtype=c.xtypeand c.name like "%varchar%"set @str="張三"Open MyCursorFetch next From MyCursor Into @cloumns,@tablenameWhile(@@Fetch_Status = 0)Beginset @sql="select @tmp_counts=count(*) from " +@tablename+ " where " +@cloumns+" = """ +@str+ """"execute sp_executesql @sql,N"@tmp_counts int out",@counts outif @counts>0beginprint "表名為:"+@tablename+",欄位名為"+@cloumnsendFetch next From MyCursor Into @cloumns,@tablenameEndClose MyCursorDeallocate MyCursor
這種情況需要寫儲存過程,進行全庫搜尋。程式碼如下:
declare @cloumns varchar(40)declare @tablename varchar(40)declare @str varchar(40)declare @counts intdeclare @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.idand b.type = "U" and a.xtype=c.xtypeand c.name like "%varchar%"set @str="張三"Open MyCursorFetch next From MyCursor Into @cloumns,@tablenameWhile(@@Fetch_Status = 0)Beginset @sql="select @tmp_counts=count(*) from " +@tablename+ " where " +@cloumns+" = """ +@str+ """"execute sp_executesql @sql,N"@tmp_counts int out",@counts outif @counts>0beginprint "表名為:"+@tablename+",欄位名為"+@cloumnsendFetch next From MyCursor Into @cloumns,@tablenameEndClose MyCursorDeallocate MyCursor
注意:其中“張三”為要查詢的字串,可以替換成其他的,如果查詢的字串超長,需要在定義變數時適當擴大長度。
可以替換成其他的,如果查詢的字串超長,需要在定義變數時適當擴大長度。
結構化查詢語言(Structured Query Language)簡稱SQL(發音:/ˈes kjuː ˈel/ "S-Q-L"),是一種特殊目的的程式語言,是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關係資料庫系統;同時也是資料庫指令碼檔案的副檔名。
結構化查詢語言是高階的非過程化程式語言,允許使用者在高層資料結構上工作。它不要求使用者指定對資料的存放方法,也不需要使用者瞭解具體的資料存放方式,所以具有完全不同底層結構的不同資料庫系統, 可以使用相同的結構化查詢語言作為資料輸入與管理的介面。結構化查詢語言語句可以巢狀,這使它具有極大的靈活性和強大的功能。
1986年10月,美國國家標準協會對SQL進行規範後,以此作為關係式資料庫管理系統的標準語言(ANSI X3. 135-1986),1987年得到國際標準組織的支援下成為國際標準。不過各種通行的資料庫系統在其實踐過程中都對SQL規範作了某些編改和擴充。所以,實際上不同資料庫系統之間的SQL不能完全相互通用。