这是SQL Prompt5的工具栏按钮
Refresh Suggestions 刷新提示(数据库更改表结构后,需要刷新一下)
Format SQL 格式化代码(Pro版本才能启用,可定制,所有前边带红花的,都是Pro版可用,以下不再特意说明),格式化乱糟糟的SQL语句,方便查看
Uppercase Keywords SQL关键词全部转换为大写(自定义变量不变)
Qualify Object Names 限定对象名称,比如原来是Selectcln from A,通过此功能,会变成Select A.cln from A,即将列进行完全限定
Expand Wildcards 展开通配符,将Select *fromtable 的*展开为具体的列
Find Invalid Object 查询无效对象
Find Unused Variables and Parameters 在当前脚本里查找未使用到的参数或者变量,能够减少参数或者变量冗余
Summarize Script 这个类似代码缩放的功能, 能够层次清晰的显示出当前脚本的嵌套关系,你再也不用怕别人一大坨的嵌套的IF-ELSE,WHILE啥的了
Script Object as ALTER 选中的对象,生成ALTER脚本(只适用于视图,存储过程,触发器,函数),会新打开一个查询器窗口,并生成该对象的ALTER脚本
Smart Rename 重命名,如果你用过Eclipse或者Myeclipse,而且用过Alt+Shift+R,那么你会跟深刻的理解这个功能,在SQLServer Management Studio左侧资源列表里选中对象(表,视图,以及表或视图的列,存储过程,函数,以及其参数),会自动更新其他依赖此对象的依赖关系
Encapsulating SQL as a new stored procedure把选中的SQL脚本封装成一个新的存储过程
Split Table 分割表,将大表或者什么原因想要把两个表拆分的,用这个功能还行
Options 选项(设置,SQLPrompt的精髓所在)
Disable Code Suggesttions 禁用提示,如果你觉得提示很烦,那么,就关了它吧
Snippet Manager 这个是SQLprompt我特别喜欢的一个功能,代码片段,稍候细讲
Serial Number 输入注册码
Provide Feedback 反馈建议,意见
Help 这个,额,不用解释了吧
ExperimentalFeatures 实验室功能,恩,还可以吧
Data Explore 数据资源管理器
1、 Refresh Suggestions
刷新提示(数据库更改表结构后,需要刷新一下),如果勾选了实验性功能里的
则每次修改表结构后会自动更新,但是如果数据库太大,或者机身内存不够,建议不要勾选,就跟eclipse很多人把自动提示取消,每次用到后选择alt+/一个道理
快捷键:Ctrl+Shift+D
2、 Format SQL
a) 设置的格式选项
b) 要设置格式选项,在的SQL提示菜单,选择“Options“。在SQL提示选项“对话框中,格式化选项都是可用的格式组:
c)
d) 单击页包含格式选项要设置的类型。
e) 讲到Options时再细说
快捷键:Ctrl+K,Ctrl+Y
3、 Uppercase Keywords
当前查询器内的脚本,如果选中部分脚本语句,则值将此部分SQL关键字转化为大写,否则,当前查询器脚本的所有关键字都将大写(自定义变量不变)
快捷键:Ctrl+B,Ctrl+U
4、 Qualify Object Names
将选中部分的变量转换为全限定名,即
Owner.object
或者
Table.Column
快捷键是:Ctrl+B,Ctrl+Q
5、 Expanding wildcards
让他们列出引用的表中存在的所有列
快捷键:Ctrl+B,Ctrl+W
6、 Find Invoid Objects
a) 查询库里所有无效的对象(无法编译,或者已经编译完成,但是无法执行)
b) 查询出结果后,可以进行Alter(可以多选)
c) 可以复制无效对象列表
d) 我想说的是,如果数据库很大,或者机器性能不行,建议不要使用该功能,特别容易卡死
7、 Find Unused Variables and Parameters
在当前脚本里查找未使用到的参数或者变量,能够减少参数或者变量冗余
没有使用的变量或者参数,用下划线进行标识
快捷键:Ctrl+B,Ctrl+F
8、 Summarize Script
这个类似代码缩放的功能, 能够层次清晰的显示出当前脚本的嵌套关系,你再也不用怕别人一大坨的嵌套的IF-ELSE,WHILE啥的了
快捷键:Ctrl+B,Ctrl+S
9、 Script Object as ALTER
选中的对象,生成ALTER脚本(只适用于视图,存储过程,触发器,函数),会新打开一个查询器窗口,并生成该对象的ALTER脚本
快捷键:F12
10、Smart Rename
重命名对象,并同时修改依赖此对象的引用,只能在对象资源管理器视图,选中要修改的对象,选择Smart Rename(支持修改,表,视图,以及表或视图的列,存储过程,函数,以及其参数)
11、EncapsulatingSQL as a new stored procedure
将选中的代码封装成一个存储过程,很简单,就不贴图了
12、Splitting atable
分割表:就是将一个大的表,查分成几个小表,同过主外键关联进行查询,具体的没研究,感兴趣的可以自己看看
13、Options 选项
关于sqlPrompt的设置,在博客园看到一篇不错的文章,就懒得自己整理了,感兴趣的自己看看吧
http://www.cnblogs.com/lyhabc/archive/2013/05/02/3055583.html
为了方便上网不方便的朋友,我已经把文章复制下来,贴到另外一个word里了,不过不可避免的错版了,凑合看吧
14、SnippetManage
最后讲一下Snippet Manage—代码片段
类似Eclipse的快捷键,比如,Eclipse里的快捷键sysout,生成的代码就是System.out.println();
这里有一些自带的,比如ssf,生成的代码就是SELECT * FROM ,如果输入表明后把光标放在*处,再按一下tab键就会把这个表的列展开,比如A表有C1,C2字段, SELECT * FROM A,
在*处按tab,就会变成
SELECT C1,
C2
FROM A
快捷键Scf生成的是SELCT COUNT(*) FROM
快捷键ct 生成的是
CREATE TABLE $CURSOR$
(
-- column_name data_type,...
)
期中在代码片段里带有$CURSOR$生成代码后,光标会跳到$CURSOR$处
类似的占位符有$DATE$ , $TIME$ , $USER$ , $MACHINE$
分别会生成,当前日期2013-09-26星期四($DATE$),当前时间21:51($TIME$),当前用户AnJia ($USER$),当前机器的计算机名ANJIA-PC($MACHINE$)
比如公司为了降低学习成本,一般对于一些存储过程有硬性要求,这样写出来的存储过程,视图,等SQL块,比较规范,便于新人掌握,理解,所以对于一些,套式的东西,完全可以自定义成快捷键,每次直接生成就可以,比如我自己定义的cpa,生成的代码如下
--**************************************************************************
--版本号Ver1.0 软件工程事业部\物流仓储系统模块\
--编写目的:
--编写人: 赵安家
--编写日期: 2013-09-26星期四 21:57
--修改目的:
--最后修改人:
--最后修改日期:
--**************************************************************************
CREATE PROCEDURE[dbo].[]
@oper_code VARCHAR(12), -- 操作编码
@key_code VARCHAR(12), -- 入库通知单主键
@Check_Oper VARCHAR(20), -- 审核人
@Check_Des VARCHAR(5000), --传入的字符串
@Check_Msg VARCHAR(500)OUTPUT --返回信息
AS
BEGIN
--公共变量
DECLARE @int_count INT; --
DECLARE @int_i INT; --
SET @key_code= REPLACE(@key_code,‘‘‘‘, ‘‘); --获取主表主键
SET @Check_Des= REPLACE(@Check_Des,‘‘‘‘, ‘‘); --获取字符串
--开启事务
BEGIN TRANTrans;
SAVE TRANTrana;
--生成主键
--EXEC dbo.BarCode_GetSheetNoProc‘081033‘, ‘‘, @str_SOCode OUTPUT,@ErrorMsg = @HintMsg1 OUTPUT;
--生成单据号
--EXEC dbo.CreateNewBusinessDocNo‘081002‘, @str_SBusinessDocNo OUT;
--截取字符串
--SELECT a FROMdbo.split(@Check_Des,‘,‘) WHERE i=1
-- 错误处理
IF @@error<> 0
BEGIN
ROLLBACK TRAN Trana;
COMMIT TRAN Trans
END
ELSE
BEGIN
COMMIT TRAN Trans;
END
END
---------------------------------------------------------------------------------------------------------------
/* 时调用此存储过程
* 存储过程名:
* 第一个参数指操作编码,目前为空
* 第二个参数指主键编码,如‘10001‘
* 第三个参数指审核人工号,如管理员审核,其工号为‘101‘
* 第四个参数指备注,传参
* 第五个参数指返回信息,前台接收的提示信息
*/
/*
EXEC @oper_code = ‘‘, @key_code = ‘10010‘, @Check_Oper = ‘101‘, @Check_Des = ‘‘,@Check_Msg = ‘‘
插入操作的时候,@Check_Des为空
EXEC ‘‘, ‘10010‘, ‘101‘, ‘‘, ‘‘;
EXEC ‘‘, ‘10010‘, ‘101‘, ‘‘, ‘‘;
*/
比如自定义ds,代码如下
DECLARE @str_光标在此 VARCHAR(12);--注释
比如自定义的while 代码如下
WHILE (@int_i<=@int_count)
BEGIN
SELECT @int_i=@int_i+1,FROM 光标在此 WHERE id=@int_i;
END