SQL Server多表搜尋字串

來源:互聯網
上載者:User

標籤:sql server多表搜尋字串

SQL Server多表搜尋字串

我們前面介紹了一些關於SQL Server 的很多文章,今天我們主要介紹一下SQL Server下在不知道表名的情況下進行搜尋字串,我們都知道,在一個資料庫下會有多張表單的時候,我們所要尋找的內容不知道在哪個表單中,那怎麼辦呢?今天我們就通過編寫SQL 陳述式來解決這個問題;

我們DB4資料庫下測試建立了兩張表,分別插入了一些資料;具體見下表;

我們測試在兩張表中都插入了一條相同的資料,在uname欄位中搜尋zs這個字串;

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M00/07/4E/wKiom1nHV_CyGRuPAAEoFJdRwZM529.png-wh_500x0-wm_3-wmp_4-s_2551988444.png" title="1.png" width="600" height="395" border="0" hspace="0" vspace="0" style="width:600px;height:395px;" alt="wKiom1nHV_CyGRuPAAEoFJdRwZM529.png-wh_50" />

我們編寫的SQL 陳述式;

declare @string varchar(30)set @string = ‘zs‘ --替換為要尋找的字串DECLARE @tabName VARCHAR(40),@colName VARCHAR(40)DECLARE @sql VARCHAR(2000)declare @tsql varchar(8000)DECLARE tabCursor CURSOR FORSELECT name from sysobjects WHERE xtype = ‘u‘ AND name <> ‘dtproperties‘OPEN tabCursorFETCH NEXT from tabCursor INTO @tabNameWHILE @@fetch_status = 0BEGINset @tsql = ‘‘DECLARE colCursor CURSOR FOR Select Name from SysColumns Where id=Object_Id(@tabName) and xtype=167OPEN colCursorFETCH NEXT from colCursor INTO @colNameWHILE @@fetch_status = 0BEGINSET @sql = ‘if(exists(select * from ‘ + @tabName + ‘ where ‘SET @sql = @sql + @colName + ‘ like ‘‘%‘ + @string + ‘%‘‘)) begin select * from ‘set @sql = @sql + @tabName + ‘ where ‘ + @colName + ‘ like ‘‘%‘ + @string + ‘%‘‘;select ‘‘‘+ @tabName + ‘‘‘ as TableName end‘set @tsql = @tsql + @sql + ‘;‘FETCH NEXT from colCursor INTO @colNameENDexec(@tsql)CLOSE colCursorDEALLOCATE colCursorFETCH NEXT from tabCursor INTO @tabNameENDCLOSE tabCursorDEALLOCATE tabCursor

執行後,會顯示執行結果;

搜尋的字串顯示列資訊及表資訊;

結構zs字串在info表中第一列,然後通過在tb_info表中的第一行中

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/07/4E/wKiom1nHWAvQVpWuAAJZKZiKS0Y245.png-wh_500x0-wm_3-wmp_4-s_1559955324.png" title="2.png" width="800" height="526" border="0" hspace="0" vspace="0" style="width:800px;height:526px;" alt="wKiom1nHWAvQVpWuAAJZKZiKS0Y245.png-wh_50" />

本文出自 “高文龍” 部落格,謝絕轉載!

SQL Server多表搜尋字串

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.