1 、查詢例項中擁有某一字段的所有表
select column_name,table_name from information_schema.columns where column_name='name
'
2、根據表名查詢當前資料庫中存在的所有表
select*from sysobjects where xtype='u
'and name like
'%salary%
'
3、乙個例項中可能會有多個資料庫,有時會忘記當前是針對哪個資料庫進行查詢,可以用到下面這句
--@@spid是當前使用者程序的會話 id
--用此會話id在master..sysprocesses中查得當前使用者程序使用的資料庫id
--再用此資料庫id在查得master..sysdatabases中查到對應的資料庫名稱
select name from master..sysdatabases where dbid=(select dbid from master..sysprocesses where spid =
@@spid)
4、檢查sql查詢效率前先清個快取
dbcc freeproccache; --刪除計畫快取記憶體中的元素
dbcc dropcleanbuffers; --
清除緩衝區
5、建立復合索引,索引中兩欄位前後順序與查詢條件欄位在數量一致的情況下,順序不影響使用索引查詢。
當復合索引中的字段數量與查詢條件字段數量不一致情況下,選擇性高的排前面(選擇性 = 基數/總行數 * 100%)。
6、刪除索引
ifexists (select si.name as indexname from sys.indexes as si inner
join sys.objects as so on si.object_id
= so.object_id
where so.name =
'devicerecords
'and si.name like
'%ix_clubs%')
drop
index ix_clubs on devicerecords
7、mysql 查詢指定資料庫中包含某字段的所有表,排除檢視
selectdistinct table_name from information_schema.columns where column_name like
'%buyer%
'and table_schema=
'hk_erp2_oms
'and table_name not
like
'vw%
';
8、c#取sql最小日期
datetime begindate = system.data.sqltypes.sqldatetime.minvalue.value;
幾個很有用的SQL語句
1 獲取某個資料庫所有表的資料行數 select o.name,i.rowcnt from sysobjects o join sysindexes i on o.id i.id where o.type u and i.indid 1 and o.name dtproperties order b...
幾個很有用的SQL語句
1 獲取某個資料庫所有表的資料行數 select o.name,i.rowcnt from sysobjects o join sysindexes i on o.id i.id where o.type u and i.indid 1 and o.name dtproperties order b...
SQL 一些有用的語句
得到當前時間格式為 yyyymmdd select convert varchar 10 getdate 112 獲取兩位年,兩位月。declare yymm varchar 8 if month getdate 10 set yymm right year getdate 2 0 convert ...