SQLServer⾃定义快捷键
SQL Server程序员经常要在SSMS(SQL Server Management Studio)或查询分析器(2000以前)中编写T-SQL代码。以下⼏个技巧,可以提升⼯作效率。
以下说明以SS2005为例,SS2008也适⽤;SS2000的话可能部分适⽤吧。
1. 快捷键
现在只要不是电脑新⼿,都知道Ctrl+C/Ctrl+V,没什么⼈会⽤菜单去进⾏复制/粘贴。⽽对于靠电脑吃饭的程序员来说,只知道这两个快捷键是不够的。
善⽤快捷键,可以节省⽤⿏标去图标或菜单的时间。更炉⽕纯青的状态是全键盘操作,连把⼿移动到⿏标的时间都省了(UNIX程序员都是这么⼲的)。
在SSMS选择菜单:⼯具->⾃定义,勾选“在屏幕提⽰中显⽰快捷键”,这样,当把⿏标悬停在执⾏图标上⽅时,会显⽰提⽰F5。快捷键不需要死记,⿏标点的时候看⼀下,下次就可以⽤快捷键了,⽤多了就熟了。哈尼雅
可以参考这个帖SQL Server 查询分析器提供的所有键盘快捷⽅式。
2. ⾃定义快捷键
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, served_page_count, w_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 lumns 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, served_page_co
unt, w_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 lumns WHERE object_id = OBJECT_ID(@tablename) FOR XML PATH('''')),1,2,'''')',N'@tablename nvarchar(100)',
--Ctrl+0:根据选定关键词在当前数据库中查表、视图、存储过程、函数gmial邮箱
郭敬明朱梓骁发生了什么事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)',