如果你想這樣做,肯定有這樣的SQL,可以寫出來。
網站建設哪家好,找成都創(chuàng)新互聯!專注于網頁設計、網站建設、微信開發(fā)、重慶小程序開發(fā)、集團企業(yè)網站建設等服務項目。為回饋新老客戶創(chuàng)新互聯還提供了松溪免費建站歡迎大家使用!
不過肯定是不建議這么做,效率肯定會很低。
要自己拼SQL。只用SQL語句也能實現不過非常麻煩。
SQL SERVER 2000 中 sysobjects 這個表記錄所有的表。
syscolumns 這個表記錄所有的列。
可以通過聯合查詢查出所有的表中的字段,然后拼SQL,進行查詢。
SELECT
表名=d.name,--case when a.colorder=1 then d.name else '' end,
字段序號=a.colorder,
字段名=a.name,
標識=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主鍵=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
))) then '√' else '' end,
類型=b.name,
占用字節(jié)數=a.length,
長度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小數位數=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允許空=case when a.isnullable=1 then '√'else '' end,
默認值=isnull(e.text,''),
字段說明=isnull(g.[value],'')
FROM syscolumns a
left join systypes b on a.xtype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name'dtproperties'
left join syscomments e on a.cdefault=e.id
left join sysproperties g on a.id=g.id and a.colid=g.smallid
order by a.id,a.colorder
上面這個SQL是找到的數據庫中所有表和列。
然后用游標,或其他的分析出所有的表和字段 拼接SQL然后查詢吧。
這樣的話,估計效率不是一般的慢。
建議還是找出具體那些字段中會存在你要查詢的數據的具體表和列。然后進行查詢,這樣效率會快些。
上面那個2000中可以用
SQL SERVER 2005和2008存儲表名和列名的表不一樣,表結構也不一樣
返回字符串在表達式expression里第一次出現的位置,起始值從1開始算,沒找就返回0
描述一下此函數的具體用法:
'%pattern%' 的用法類似于 like '%pattern%' 的用法,也就是模糊查找其pattern字符串是否是expression找到,找到并返回其第一次出現的位置。
查找pattern的結束所在expression的位置,也就是從后面匹配起查找。
查詢pattern首次出現的位置。
返回0,開頭找不到就返回0,后面無論有多少都不管。
這就相當于精確匹配查找,也就是pattern,expression完全相等。
[] 是指定某些特殊的字符。
[^] 除[]之外的字符串。
一般在sql里搜索看你是模糊的還是已知的
已知道的就直接列名等于關鍵詞的
模糊的就列名 Like關鍵詞
舉例:
已知道的:select * from table where column='關鍵詞'
模糊的:select * from table where column like '%關鍵詞%'
這里的的百分號可以自己調的.
例如你要查的是以關鍵詞結尾的例那么就是:%關鍵詞
總之%號是點位符號的意思,任何一個或多個字符都可以。如果只要一位好像是用下劃線的,小線(_)括號里的,只帶表一個字符,具體去查相關的通配符知識的。