① 在一個sql資料庫中怎麼查出包含某個特定欄位的所有數據表信息
1.查詢資料庫中的所有資料庫名:
SELECT Name FROM Master..SysDatabases ORDER BY Name
2.查詢某個資料庫中所有的表名:
SELECT Name FROM SysObjects Where XType='U' ORDER BY Name
3.查詢表結構信息:
1 SELECT (case when a.colorder=1 then d.name else null end) 表名,
2 a.colorder 欄位序號,a.name 欄位名,
3 (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 標識,
4 (case when (SELECT count(*) FROM sysobjects
5 WHERE (name in (SELECT name FROM sysindexes
6 WHERE (id = a.id) AND (indid in
7 (SELECT indid FROM sysindexkeys
8 WHERE (id = a.id) AND (colid in
9 (SELECT colid FROM syscolumns WHERE (id = a.id) AND (name = a.name)))))))
10 AND (xtype = 'PK'))>0 then '√' else '' end) 主鍵,b.name 類型,a.length 佔用位元組數,
11 COLUMNPROPERTY(a.id,a.name,'PRECISION') as 長度,
12 isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小數位數,(case when a.isnullable=1 then '√'else '' end) 允許空,
13 isnull(e.text,'') 默認值,isnull(g.[value], ' ') AS [說明]
14 FROM syscolumns a
15 left join systypes b on a.xtype=b.xusertype
16 inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
17 left join syscomments e on a.cdefault=e.id
18 left join sys.extended_properties g on a.id=g.major_id AND a.colid=g.minor_id
19 left join sys.extended_properties f on d.id=f.class and f.minor_id=0
20 where b.name is not null
21 --WHERE d.name='要查詢的表' --如果只查詢指定表,加上此條件
22 order by a.id,a.colorder
② sql查詢資料庫中有某個值的所有表
1、首先在電腦中打開Microsoft SQL Server,查詢所有資料庫。
③ sql語句包含怎麼寫
sql語句包含可寫成:select * from table1 where field1 like 』%value1%』(所有包含『value1』這個模式的字元串)。
sql語句用於資料庫查詢和程序設計,比如查詢表中某欄位值「包含」某字元串的所有記錄的方法如下:
如果表中有一個name欄位,查詢name包含「張三」的所有記錄,就可以這樣寫:Stirng strsql="SELECT * FROM 表名 WHERE name LIKE 』%"+"張三"+"%』"。
(3)sql中包含某個值的數據擴展閱讀
sql語句包含的關聯詞
據了解,sql語句查詢某欄位值「包含於」某個字元串的所有記錄的方法如下:
如果查詢表中name欄位包含於字元串「張三是個好學生」的所有記錄,就可以這樣寫:String strsql="SELECT * FROM 表名 WHERE INSTR(』張三是個好學生』,name)>0"(記錄中的name欄位值中包括張、三、是、個、好、學、生、張三等所有記錄)。
④ sql 如何查詢包含某一欄位的值
這種情況需要寫存儲過程,進行全庫搜索。代碼如下:
declare@cloumnsvarchar(40)
declare@tablenamevarchar(40)
declare@strvarchar(40)
declare@countsint
declare@sqlnvarchar(2000)
declareMyCursorCursorFor
Selecta.nameasColumns,b.,sysobjectsb,systypesc
wherea.id=b.id
andb.type='U'
anda.xtype=c.xtype
andc.namelike'%varchar%'
set@str='張三'
OpenMyCursor
FetchnextFromMyCursorInto@cloumns,@tablename
While(@@Fetch_Status=0)
Begin
set@sql='select@tmp_counts=count(*)from'+@tablename+'where'+@cloumns+'='''+@str+''''
executesp_executesql@sql,N'@tmp_countsintout',@countsout
if@counts>0
begin
print'表名為:'+@tablename+',欄位名為'+@cloumns
end
FetchnextFromMyCursorInto@cloumns,@tablename
End
CloseMyCursor
DeallocateMyCursor
注意:其中「張三」為要查找的字元串,可以替換成其他的,如果查詢的字元串超長,需要在定義變數時適當擴大長度。