如果你想這樣做,肯定有這樣的SQL,可以寫出來(lái)。
創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的蜀山網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
不過(guò)肯定是不建議這么做,效率肯定會(huì)很低。
要自己拼SQL。只用SQL語(yǔ)句也能實(shí)現(xiàn)不過(guò)非常麻煩。
SQL SERVER 2000 中 sysobjects 這個(gè)表記錄所有的表。
syscolumns 這個(gè)表記錄所有的列。
可以通過(guò)聯(lián)合查詢查出所有的表中的字段,然后拼SQL,進(jìn)行查詢。
SELECT
表名=d.name,--case when a.colorder=1 then d.name else '' end,
字段序號(hào)=a.colorder,
字段名=a.name,
標(biāo)識(shí)=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é)數(shù)=a.length,
長(zhǎng)度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小數(shù)位數(shù)=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允許空=case when a.isnullable=1 then '√'else '' end,
默認(rèn)值=isnull(e.text,''),
字段說(shuō)明=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
上面這個(gè)SQL是找到的數(shù)據(jù)庫(kù)中所有表和列。
然后用游標(biāo),或其他的分析出所有的表和字段 拼接SQL然后查詢吧。
這樣的話,估計(jì)效率不是一般的慢。
建議還是找出具體那些字段中會(huì)存在你要查詢的數(shù)據(jù)的具體表和列。然后進(jìn)行查詢,這樣效率會(huì)快些。
上面那個(gè)2000中可以用
SQL SERVER 2005和2008存儲(chǔ)表名和列名的表不一樣,表結(jié)構(gòu)也不一樣
一、查詢包含某字段的所有表、視圖和存儲(chǔ)
格式:
注意:其中類型P、U、V分別對(duì)應(yīng)存儲(chǔ)、表和視圖。
例子:
查詢結(jié)果:
二、查詢包含某字段(或某內(nèi)容)的所有存儲(chǔ)過(guò)程
查詢存儲(chǔ)中包含某些內(nèi)容的所有存儲(chǔ)。
格式:
例子:
查詢結(jié)果:
一般在sql里搜索看你是模糊的還是已知的
已知道的就直接列名等于關(guān)鍵詞的
模糊的就列名 Like關(guān)鍵詞
舉例:
已知道的:select * from table where column='關(guān)鍵詞'
模糊的:select * from table where column like '%關(guān)鍵詞%'
這里的的百分號(hào)可以自己調(diào)的.
例如你要查的是以關(guān)鍵詞結(jié)尾的例那么就是:%關(guān)鍵詞
總之%號(hào)是點(diǎn)位符號(hào)的意思,任何一個(gè)或多個(gè)字符都可以。如果只要一位好像是用下劃線的,小線(_)括號(hào)里的,只帶表一個(gè)字符,具體去查相關(guān)的通配符知識(shí)的。
SELECT id,
CASE WHEN id=1 THEN firstname ELSE user END 'username'
FROM tb1
如果是查詢條件要用這個(gè)就套一個(gè)
SELECT *
FROM tb1 a
WHERE username=(SELECT CASE WHEN id=1 THEN firstname ELSE user END
FROM tb1
WHERE id=a.id);
有自帶的全文檢索,主要功能是在指定列上創(chuàng)建全文檢索索引,然后可以基于關(guān)鍵字查詢?cè)摿袃?nèi)容。
在where語(yǔ)句后面用CONTAINS(列名,value)這個(gè)函數(shù)就可以,沒(méi)有索引的話應(yīng)該就是掃描的方式執(zhí)行。
沒(méi)有
你可以嘗試這樣
declare @searchstr varchar(max)
declare @valuestr varchar(max)
declare @index int
--結(jié)果表達(dá)試出現(xiàn)次數(shù)
declare @count int
--要搜索的表達(dá)式
set @searchstr = '111111abc2222222abc333333abc44444555'
--搜索表達(dá)試
set @valuestr = 'abc'
set @count = 0
select @index = charindex(@valuestr,@searchstr,0)
while @index0
begin
set @count = @count + 1
select @searchstr = substring(@searchstr,@index+len(@valuestr),len (@searchstr))
select @index = charindex(@valuestr,@searchstr,0)
end
select @count