SQL Server 自定義快捷鍵


SQL Server程序員經常要在SSMS(SQL Server Management Studio)或查詢分析器(2000以前)中編寫T-SQL代碼。以下幾個技巧,可以提升工作效率。

以下說明以SS2005為例,SS2008也適用;SS2000的話可能部分適用吧。

  1. 快捷鍵

現在只要不是電腦新手,都知道Ctrl+C/Ctrl+V,沒什么人會用菜單去進行復制/粘貼。而對於靠電腦吃飯的程序員來說,只知道這兩個快捷鍵是不夠的。

善用快捷鍵,可以節省用鼠標去找圖標或菜單的時間。更爐火純青的狀態是全鍵盤操作,連把手移動到鼠標的時間都省了(UNIX程序員都是這么干的)。

在SSMS選擇菜單:工具->自定義,勾選“在屏幕提示中顯示快捷鍵”,這樣,當把鼠標懸停在執行圖標上方時,會顯示提示F5。快捷鍵不需要死記,鼠標點的時候看一下,下次就可以用快捷鍵了,用多了就熟了。

可以參考這個帖SQL Server 查詢分析器提供的所有鍵盤快捷方式。

  1. 自定義快捷鍵

SQL Server Management Studio支持自定義快捷鍵:工具->選項->鍵盤:
其中,Alt+F1、Ctrl+1、Ctrl+2是系統預定義的快捷鍵。
雙擊表名(或按Ctrl單擊表名),選定一個表名,如tablename,按Alt+F1,相當於執行“sp_help tablename”,可以查看對象的說明信息。

以下是我添加的一些自定義快捷鍵:
[code=sql]
--Ctrl+F1:顯示表或視圖的前100行,選定“tablename,1000”按Ctrl+F1可顯示表的前1000行。
sp_executesql N'IF OBJECT_ID(@tablename) IS NOT NULL EXEC(N''SELECT TOP(''+@n+N'') * FROM ''+@tablename)',N'@tablename nvarchar(100),@n int=100',
--Ctrl+3:顯示視圖、存儲過程、函數、觸發器的定義腳本。
sp_helptext
--Ctrl+4:顯示表的行數和占用空間。
sp_spaceused
--Ctrl+5:顯示表中每個索引占用的空間。
sp_executesql N'SELECT index_name = ind.name, ddps.used_page_count, ddps.reserved_page_count, ddps.row_count FROM sys.indexes ind INNER JOIN sys.dm_db_partition_stats ddps ON ind.object_id = ddps.object_id AND ind.index_id = ddps.index_id WHERE ind.object_id = OBJECT_ID(@tablename)',N'@tablename nvarchar(100)',
--Ctrl+9:顯示表或視圖的字段名,以逗號分隔。
sp_executesql N'SELECT columns = STUFF((SELECT '', ''+name FROM sys.columns WHERE object_id = OBJECT_ID(@tablename) FOR XML PATH('''')),1,2,'''')',N'@tablename nvarchar(100)',
--Ctrl+0:根據選定關鍵詞在當前數據庫中查找表、視圖、存儲過程、函數
sp_executesql N'SELECT * FROM sys.objects WHERE type IN (''U'',''V'',''P'',''FN'') AND name LIKE ''%''+@keyword+''%'' ORDER BY type,name',N'@keyword nvarchar(50)',
[/code]

--Ctrl+F1:顯示表或視圖的前100行,選定“tablename,1000”按Ctrl+F1可顯示表的前1000行。
sp_executesql N'IF OBJECT_ID(@tablename) IS NOT NULL EXEC(N''SELECT TOP(''+@n+N'') * FROM ''+@tablename)',N'@tablename nvarchar(100),@n int=100',
--Ctrl+3:顯示視圖、存儲過程、函數、觸發器的定義腳本。
sp_helptext
--Ctrl+4:顯示表的行數和占用空間。
sp_spaceused
--Ctrl+5:顯示表中每個索引占用的空間。
sp_executesql N'SELECT index_name = ind.name, ddps.used_page_count, ddps.reserved_page_count, ddps.row_count FROM sys.indexes ind INNER JOIN sys.dm_db_partition_stats ddps ON ind.object_id = ddps.object_id AND ind.index_id = ddps.index_id WHERE ind.object_id = OBJECT_ID(@tablename)',N'@tablename nvarchar(100)',
--Ctrl+9:顯示表或視圖的字段名,以逗號分隔。
sp_executesql N'SELECT columns = STUFF((SELECT '', ''+name FROM sys.columns WHERE object_id = OBJECT_ID(@tablename) FOR XML PATH('''')),1,2,'''')',N'@tablename nvarchar(100)',
--Ctrl+0:根據選定關鍵詞在當前數據庫中查找表、視圖、存儲過程、函數
sp_executesql N'SELECT * FROM sys.objects WHERE type IN (''U'',''V'',''P'',''FN'') AND name LIKE ''%''+@keyword+''%'' ORDER BY type,name',N'@keyword nvarchar(50)',


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM