打开SQL Server Mangement Studio,然后依次打开:工具->选项->环境->键盘->查询快捷方式,大家可以看到,SSMS已经自带了12个快捷键,其中3个已经有了定义。善用这些快捷方式,分析对象时会让你有行云流水般的感觉,下面我就介绍几个常用的快捷键
快捷方式 | 存储过程 | 说明 |
Alt + F1 | sp_help | 查看对象帮助信息(默认设置) |
Ctrl + F1 | sp_helptext | 查看对象定义信息,配合Ctrl+T(以文本形式显示查询结果),可快速获取对象的定义内容 |
Ctrl + 1 | sp_who | 查看SQL Server进程信息(默认设置) |
Ctrl + 2
|
sp_lock | 查看进程的锁信息(默认设置) |
Ctrl + 3
|
||
Ctrl + 4
|
sp_executesql N'EXEC(''SELECT ObjectDefinition=b.name FROM (SELECT Content=CONVERT(XML, ''''<root><v><![CDATA['''' + REPLACE(OBJECT_DEFINITION(OBJECT_ID(''''''+ @ObjectName +'''''')), CHAR(13)+CHAR(10), '''']]></v><v><![CDATA['''') +'''']]></v></root>'''')) a OUTER APPLY (SELECT [name] = C.v.value(''''.'''',''''NVARCHAR(MAX)'''') FROM a.Content.nodes(''''/root/v'''') C(v)) b'')', N'@ObjectName NVARCHAR(255)', |
获取对象定义(视图 ,函数 , 存储过程, 触发器等)
|
Ctrl + 5
|
sp_spaceused | 查看数据库或表的空间占用情况(我一般用它查看某个表的大概行数) |
Ctrl + 6
|
sp_executesql N'SELECT name, base_object_name, create_date, modify_date FROM sys.synonyms WHERE name = @name', N'@name NVARCHAR(255)', | 查看同义词定义 |
Ctrl + 7
|
sp_helpindex | 查看表的索引信息 |
Ctrl + 8
|
||
Ctrl + 9
|
sp_executesql N'EXEC(''SELECT * FROM '' + @tablename)', N'@tablename nvarchar(255)', | 查询表的所有记录 |
Ctrl + 0
|
sp_executesql N'EXEC(''SELECT TOP(5) * FROM '' + @tablename)', N'@tablename nvarchar(255)', | 查询表的前5行记录 |
说明
#1. 执行原理:当在SSMS中按下快捷键时,会调用其已经绑定的存储过程;如果当前活动连接窗口中有选中的文本,则把文本值作为参数传给存储过程执行,否则无参数执行存储过程。好像只能传一个参数。
#2. 设置完成后,重启SSMS起效。
#3. 编写自定义查询时,为了灵活,一般是调用sp_executesql存储过程,且用EXEC的方式实现,示例如下:
USE tempdb GO --新建测试表 IF object_id('TestShortKey', 'u') IS NOT NULL DROP TABLE dbo.TestShortKey go CREATE TABLE dbo.TestShortKey ( id int, name varchar(10), code char(5) ) INSERT INTO dbo.TestShortKey(id,name,code) VALUES(1,'wyl','') go --假如我要查询TestShortKey表中name字段的前5行记录,参考如下 --#1.先把EXEC写好,并保证执行结果正确 DECLARE @FieldName NVARCHAR(100) SET @FieldName = N'name' EXEC('SELECT TOP(5) ' + @FieldName + ' FROM dbo.TestShortKey') --#2.把EXEC那行SQL放到第三方编辑器中,把所有的'替换成'',结果如下 EXEC(''SELECT TOP(5) '' + @FieldName + '' FROM dbo.TestShortKey'') --#3.把#2中的字符串,和#1中的参数定义,粘贴到sp_executesql后的参数中,并让其成为1行 sp_executesql N'EXEC(''SELECT TOP(5) '' + @FieldName + '' FROM dbo.TestShortKey'')', N'@FieldName NVARCHAR(100)', --#4.定义好快捷键后,输入一个"name"单词,并双击选中,按下快捷键 name
小结
快捷键的定义可提高分析对象时的效率,建议大家根据需要定义自己的快捷键。