SQL脚本越写越多,总是觉得编写效率太过于低下,这和打字速度无关。在我个人编写SQL脚本时,至少会把SQL的格式排列成易于阅读的,因为其他人会阅读到你的SQL,无论是在程序中或是脚本文件中,良好的排版不仅让人看起来赏心悦目,在和他人之间做交流时也省时省力,不会因为揉成一团的sql去询问Team Member:您能帮我解释一下这么一大段sql是做什么的吗?
虽然微软至SQL 2008以上的版本提供了SQL智能提示,但是它的反应实在是过于迟钝,等提示出来我们早就可以敲出一行语句了。而且它没有提供sql代码格式化的功能,咱们只能自己做手动格式化,手动格式化sql总是需要花费不少时间的。
本文已经同步至我的个人博客站点:积累吧 | SQL开发利器SQL Prompt 5.1完全破解+使用教程
系统:win7 64 + SQL 2008 R2
在介绍SQL Prompt 5.1之前(官方最新版本已经是5.3了),先介绍另外一款sql工具sqldbx。
它也是一款拥有智能提示的sql编程工具,而且小巧灵活,支持多种类型的数据库(不仅仅是SQL Server)。唯一的缺点就是它不支持中文,数据表中查询到的中文在这款工具的结果集中显示都是乱码的。
总而言之,它也是一款能够提高sql编程效率的工具。
大家可以在CSDN上下载它:http://download.csdn.net/tag/sqldbx,也是破解版的。
现在开始本文的核心,SQL Prompt 5.1的破解环境。看到官网900$以上的价格,我望而却步,如果只是200$以内,我倒是愿意为这个软件付费,谁让它确实非常好用呢?
下载地址:https://skydrive.live.com/#cid=111BC882C7F91F7D&id=111BC882C7F91F7D%21105
1) 下载完成后,解压得到下面两项。Crack中的文件是破解文件。
2) 运行SQLPrompt.exe,一路Next直至安装完成。
SQL Prompt提供了三个功能,我们最关心的是SQL Prmopt 5.1——Write, edit and explore SQL effortlessly
3) 覆盖RedGate.SQLPrompt.SSMSUI.dll和RedGate.SQLPrompt.VSUI.dll文件
在覆盖这两个dll文件之前,请先做好备份。
4) 执行破解命令
也许您第一次运行Register.bat这个文件和我一样,弹出命令框一闪而过,你也不知道发生了什么,可以肯定的是没有破解成功,在打开SQL Server时会弹出SQL Prompt加载错误。
用记事本打开Register.bat文件,看到下面一串代码,很明显它是用来注册dll的(regasm是程序集注册工具)
%SYSTEMROOT%\Microsoft.net\Framework\v2.0.50727\regasm "%ProgramFiles%\Red Gate\SQL Prompt 5\RedGate.SQLPrompt.SSMSUI.dll"
既然自动注册不成功,那就手动注册吧。分别在命令行中执行下面两个命令(你用.NET Framework 4.0注册也是可以的):
cd C:\Windows\Microsoft.NET\Framework\v2.0.50727
regasm "D:\Program Files (x86)\Red Gate\SQL Prompt 5\RedGate.SQLPrompt.SSMSUI.dll"
第二个命令取决于你SQL Prompt 5的安装路径。
注意:SQL Prompt也支持SQL Server 2005,我本人的环境是SQL Server 2008 R2。
1) 智能提示
SQL Prompt的智能提示非常灵敏,相比于2008 R2自带的要好得多。在输入关键字时,即使你输入的是小写,它会自动帮你转换为大写的(实际上所有的SQL关键字大写是一种更为规范的写法),不需要在写关键字和普通单词时来回地切换Caps Lock键。
除了代码智能提示,它还提供了表定义智能提示。也许你有一张很大的表,但是有些字段你无法记得清楚,你不必去SQL Server左侧的服务器资源管理器查看这张打表的结构。
2) sql代码格式化
格式化前:
CREATE DATABASE Test GO USE Test GO CREATE TABLE Employees ( Id INT IDENTITY PRIMARY KEY, EmployeeName NVARCHAR(100), EntryDate DATE ) GO CREATE TABLE Users ( Id INT IDENTITY PRIMARY KEY, UserName NVARCHAR(100), Gender CHAR(1), Birhdate DATETIME, EmployeeId int ) GO SELECT u.UserName, e.EmployeeName FROM dbo.Users u INNER JOIN dbo.Employees e ON e.Id = u.EmployeeId
格式化后:
CREATE DATABASE Test GO USE Test GO CREATE TABLE Employees ( Id INT IDENTITY PRIMARY KEY , EmployeeName NVARCHAR(100) , EntryDate DATE ) GO CREATE TABLE Users ( Id INT IDENTITY PRIMARY KEY , UserName NVARCHAR(100) , Gender CHAR(1) , Birhdate DATETIME , EmployeeId INT ) GO SELECT u.UserName , e.EmployeeName FROM dbo.Users u INNER JOIN dbo.Employees e ON e.Id = u.EmployeeId
如果你编写了大段的存储过程或试图,用SQL Prompt格式化可以节省我们不少时间。
SQL Prompt提供了数据库的版本控制器,我在尝试使用这个功能之后,不得不说这真是一个非常不错的功能。
数据库中的表、视图、存储过程、函数的添加和变更都可以通过它来管理,而不用在每次变更时都去填写一个Excel文档记录数据库变更点。
下面几幅图是一个简单的教程。
1) 点击Link database to source control
它提供了几种连接到Source Control的接口,这里我选择SVN作为数据库版本控制器。
2) 输入SVN地址和开发模式,开发模式我选择了多人共享模式
连接成功后会显示连接的地址和数据库
3) 更改数据库操作
当我更改了Users表的结构后,Users表会出现一个蓝色的小图标,表示表被变更了,可以做Commit操作。
在表的右键菜单中有Commit命令
现在开始提交它,它会提示你表结构做了哪些变更(我向Users表添加了Address列),点击右上角的Commit按钮提交
4) 查看历史记录
之前我对表已经做了更改,View History作为版本控制很重要的一个功能,现在来验证它是否对数据库起作用。
右键->Show History
前后版本有一个清晰地对比
在官方网站上明确说明了SQL Prompt只能在Database Project或SQL Server Project中使用。
Using SQL Prompt with Visual Studio
SQL Prompt can be integrated with Visual Studio 2005, 2008 and 2010. SQL Prompt only works in Database projects and SQL Server projects.
我们在进行项目时,可以为项目创建一个配套的数据库项目来管理我们的表、视图、存储过程以及其他数据库脚本。
在一般的项目中我们是无法使用SQL Prompt的。
当我们创建了SQL Server Project或Database Project后,就可以使用它了。
美中不足的是,经过多次试验,本人在Visual Studio 2010中使用SQL Prompt失败了,系统是win 7 64位的,还需要验证是否在32位win7系统下是否可用。
顺便把错误贴出来:
即使按照官方网站提供的解决方案也没有解决(注册TextMgrP.dll文件)
Always keep dream, keep thinking, keep moving, even if the road obstacles , the one more important thing is that always be a pig for you, that's keep fool.