SQL PROMPT5.3.4.1的一些设置选项

摘自:http://www.cnblogs.com/furenjian/p/4519426.html

sql prompt这个工具安装好之后就可以在SSMS里使用代码提示功能

园子里非常多的文章:例如SQLSERVER开发利器XXXXXX

http://www.cnblogs.com/VAllen/archive/2012/09/08/SQLPrompt.html

http://www.cnblogs.com/keepfool/archive/2012/05/27/2519839.html

不过大家都是只提供个软件下载、怎麽破解sql prompt还有简单的使用方法,但是具体怎样使用和设置真的没有

昨天本人无聊研究了一下SQL PROMPT的设置,发现也有一些学问

大家想想,当我们在网上或者同事丢给我们一个sql代码,我们会把代码粘贴到SSMS里面看呢,但是每个人写的代码风格不一样

从网上粘贴进来的代码会有行号这些,特别代码非常长的时候,格式化都不知道怎么格式化了,这个时候就需要sql prompt的代码格式化功能了

使用sql prompt的代码格式化功能很简单,选中你要格式化的代码或者你直接在查询窗口按右键-》formate sql,

那么你选中的那部分代码或者整个sql脚本都会自动formate,这样就方便自己观看了。

但是sql prompt默认的代码格式化格式可能不适合大部分人,其实sql prompt提供了代码格式化的选项设置让大家去设置,只需要几分钟

个人感觉这些设置才是精粹,代码提示功能只是一小部分而已,还有sql prompt实验室提供的创新功能

redgate公司真的厉害,一个简单sql prompt集成了这麽多功能,可能大家以为我帮redgate公司卖广告,不过我相信大部分人都是使用破解的吧 o(∩_∩)o

-----------------------------------------------------华丽的分割线-------------------------------------------------------

说一下菜单中的选项,基本上菜单选项我很少用到,因为里面全部功能对我本人没有用,或者对你们有用 呵呵

除了一个非常重要的选项:启用/禁用代码提示功能,SQL prompt共有两处地方可以设置启用/禁用代码提示功能的开关

一个是这里,另一个是“option”-》Main-》behavior第一个选项就见到啦

---------------------------------------------------华丽的分割线-------------------------------------------------------------

下面对option菜单里面的选项逐个简单介绍

-----------------------------------------------华丽的分割线--------------------------------------------------------------

首先是Main->behavior  软件行为

输入对象之后马上显示对象的定义

其实大家可以按照我的设置去设置,一般我用到的基本上都是大家用到的

------------------------------------------------华丽的分割线------------------------------------------------------------------

Suggestions->types of suggestion  输入和代码提示建议

解密已经加密了的对象还真的有用,比如我加密了一个存储过程,那么我想看这个存储过程是怎麽写的,使用下面sql语句是看不出的

1 USE [pratice]
2 GO
3 EXEC [sys].[sp_helptext] @objname = N‘dbo.creat_test_Encryption‘
1 对象 ‘dbo.creat_test_Encryption‘ 的文本已加密。

但是使用sql prompt就可以看到存储过程的内容

Suggestions->join conditions  连接条件

这个表连接的代码提示设置,可以根据你输入的是数据类型还是列名来进行提示,非常方便

例如我输入的是数据类型,他就会弹出在这个表里符号你输入的数据类型的字段

比如我输入datetime类型

输入列名

1 USE [GPOSDB]
2 GO
3 SELECT * FROM [dbo].[CT_FuelingData] AS a INNER JOIN [dbo].[CT_InhouseCard] AS b ON a.[VC_FD_Cardno]=b.[VC_IC_CardNO]

-----------------------------------------------------华丽的分割线---------------------------------------------------------

Inserted Code->Objects&statements  对象和语句

Inserted Code->Qualification 限定名

像我在图片中说到那样,不知道为什么你输入表名. ,代码提示还是会显示出具有相同列名的表出来

不过这个地方还是有好处的,不如你查一个视图,但是不知道某个视图里的某列的意思

我举个简单的例子吧

比如我想知道 [sys].[sysprotects]这个系统视图中的uid列对应是哪个用户或角色,但是我不知道哪个表或者视图包含有uid这个列的

那么我可以输入下面语句就会显示包括uid列的表或者视图,虽然会显示多个表都包含这个列,但是你想一下

[sys].[sysprotects]这个视图会跟用户、权限的表有关,那么很自然就会想到sysuser这个系统视图

输入下面的语句关联看一下就知道uid对应[sysuser]视图里的哪个用户了

1 SELECT  a.*, b.[name]
2 FROM    [sys].[sysprotects] AS a
3 LEFT JOIN [sys].[sysusers] AS b ON a.[uid] = b.[uid]
4 ORDER BY a.[id]

Inserted Code->Aliases 别名

Inserted Code->Special characters 特殊符号

-----------------------------------------------------华丽的分割线------------------------------------------------------------------------

 到代码格式化了!!

注意,在Formate这个选项下面的所有设置,都要在查询编辑器里选中需要格式化的代码 然后右键-》formate sql 才看到效果的,

不是你输入代码之后sqlprompt马上会自动帮你formate,是手动的喔。

 Formate->Styles 风格

这里Styles应该是给你看的,反正我是编辑不了,可以导出XML格式的style文件,但是我也不知道怎么编辑,抱歉抱歉

大家E文比较好的话可以看redgate的官方网站解释,但是我看了里面好像没有说到怎麽编辑,太杯具了~

网站链接:https://documentation.red-gate.com/display/SP53/Options+for+formatting+your+code

导出的style文件

 1 <?xml version="1.0" encoding="utf-16" standalone="yes"?>
 2 <!---->
 3 <LayoutOptions version="1" type="LayoutOptions">
 4   <ReservedWordsCasing>1</ReservedWordsCasing>
 5   <BuiltInFunctionCasing>1</BuiltInFunctionCasing>
 6   <BuiltInDataTypeCasing>1</BuiltInDataTypeCasing>
 7   <DelimitIdentifiers>False</DelimitIdentifiers>
 8   <IndentationAmount>4</IndentationAmount>
 9   <UseTabs>False</UseTabs>
10   <ReformatExpressions>True</ReformatExpressions>
11   <FirstColumnOnNewLine>False</FirstColumnOnNewLine>
12   <CommasAtStart>False</CommasAtStart>
13   <MultilineSpacesAfterCommas>False</MultilineSpacesAfterCommas>
14   <MultilineSpacesBeforeCommas>True</MultilineSpacesBeforeCommas>
15   <MultilineAlignCommasWithStatement>True</MultilineAlignCommasWithStatement>
16   <OperatorsOnNewline>True</OperatorsOnNewline>
17   <OperatorsAtStart>True</OperatorsAtStart>
18   <IndentBeginToken>True</IndentBeginToken>
19   <IndentWithExpressionBrackets>True</IndentWithExpressionBrackets>
20   <IndentWithParameterBrackets>True</IndentWithParameterBrackets>
21   <IndentWithQueryBrackets>True</IndentWithQueryBrackets>
22   <CloseBracketsOnNewLine>True</CloseBracketsOnNewLine>
23   <OpenBracketsOnNewLine>False</OpenBracketsOnNewLine>
24   <Wrap>True</Wrap>
25   <WrapWidth>78</WrapWidth>
26   <ShortLength>15</ShortLength>
27   <CreateBracketsAtStartOfLines>False</CreateBracketsAtStartOfLines>
28   <ParameterBracketOnNewline>True</ParameterBracketOnNewline>
29   <CloseParameterBracketsOnNewLine>True</CloseParameterBracketsOnNewLine>
30   <CompactShortStatements>False</CompactShortStatements>
31   <SinglelineSpacesAfterCommas>True</SinglelineSpacesAfterCommas>
32   <SinglelineSpacesBeforeCommas>False</SinglelineSpacesBeforeCommas>
33   <SpacesAroundOperators>True</SpacesAroundOperators>
34   <SpacesAroundComparisons>True</SpacesAroundComparisons>
35   <FirstParameterDefinitionOnNewLine>True</FirstParameterDefinitionOnNewLine>
36   <SpacesAfterBrackets>True</SpacesAfterBrackets>
37   <LayoutSelectStatements>True</LayoutSelectStatements>
38   <LayoutCreateStatements>True</LayoutCreateStatements>
39   <QueryNewlineAfterOpenBracket>False</QueryNewlineAfterOpenBracket>
40   <QueryNewlineBeforeCloseBracket>True</QueryNewlineBeforeCloseBracket>
41   <JoinConditionsOnNewline>False</JoinConditionsOnNewline>
42   <AlignConditionsWithJoins>False</AlignConditionsWithJoins>
43   <AlignJoinsWithFrom>False</AlignJoinsWithFrom>
44   <IndentByKeywordWidth>False</IndentByKeywordWidth>
45   <ColumnsOnSingleLine>False</ColumnsOnSingleLine>
46   <DoNotIndentProcedureContents>False</DoNotIndentProcedureContents>
47   <ExecuteParametersOnSingleLine>True</ExecuteParametersOnSingleLine>
48   <UseSpacesInsteadOfTabs>False</UseSpacesInsteadOfTabs>
49   <IndentSelectSubclauses>False</IndentSelectSubclauses>
50 </LayoutOptions>

 Formate->Case 大小写

 Formate->Schema statements 结构语句

Formate->Data statements 数据语句

 Formate->Expressions 表达式

 Formate->Commas&parentheses 逗号和双引号

Formate->Tabs&wrapping 自动换行和tabs键缩进量

经过以上设置,我用formate sql功能格式化了一下今天同事给我的一个sql脚本,还算比较舒服的格式化了之后

 1 /*
 2 @StartDate
 3 @EndDate
 4 */
 5 ALTER PROCEDURE [dbo].[CT_FuelingData_ICCardGatherReport]
 6 (
 7   @StartDate VARCHAR(50) ,
 8   @EndDate VARCHAR(50)
 9 )
10 AS
11 BEGIN
12     DECLARE @i INT
13     DECLARE @totalcount INT
14     DECLARE @tmpOilTypeName VARCHAR(50)
15     DECLARE @tmpInAmount DECIMAL
16     DECLARE @tmpOutAmount DECIMAL
17     TRUNCATE TABLE Rep_ICFueling
18     CREATE TABLE #TmpOilTypeName
19     (
20       IndexId INT IDENTITY(1, 1)
21                   NOT NULL ,
22       VC_OT_OilTypeName VARCHAR(50)
23     )
24     INSERT  INTO #TmpOilTypeName ( VC_OT_OilTypeName )
25             SELECT  VC_OT_OilTypeName
26             FROM    DP_OilType
27             ORDER BY VC_OT_OilTypeName ASC
28     SET @totalcount = @@rowcount
29     SET @i = 1
30     WHILE ( @i <= @totalcount )
31         BEGIN
32             SET @tmpInAmount = NULL
33             SET @tmpOutAmount = NULL
34             SELECT  @tmpOilTypeName = VC_OT_OilTypeName
35             FROM    #TmpOilTypeName
36             WHERE   IndexId = @i
37             SELECT  @tmpInAmount = SUM(ISNULL(a.DE_FD_Amount, 0))
38             FROM    CT_FuelingData a ,
39                     CT_OuterCard b
40             WHERE   ( a.I_FD_TypeCode <> 1 ) AND ( a.I_FD_TypeCode <> 5 ) AND ( b.VC_OC_Company = ‘‘ ) AND ( D_FD_DateTime BETWEEN @StartDate AND @EndDate ) AND a.VC_FD_Cardno = b.VC_OC_Cardno AND a.VC_FD_OilType = @tmpOilTypeName
41             GROUP BY a.VC_FD_OilType
42             SELECT  @tmpOutAmount = SUM(ISNULL(a.DE_FD_Amount, 0))
43             FROM    CT_FuelingData a ,
44                     CT_OuterCard b
45             WHERE   ( a.I_FD_TypeCode <> 1 ) AND ( a.I_FD_TypeCode <> 5 ) AND ( b.VC_OC_Company <> ‘‘ ) AND ( D_FD_DateTime BETWEEN @StartDate AND @EndDate ) AND a.VC_FD_Cardno = b.VC_OC_Cardno AND a.VC_FD_OilType = @tmpOilTypeName
46             GROUP BY a.VC_FD_OilType
47             INSERT  INTO Rep_ICFueling ( OilTypeStr, InAmount, OutAmount )
48             VALUES  ( @tmpOilTypeName, ISNULL(@tmpInAmount, 0),
49                       ISNULL(@tmpOutAmount, 0) )
50             SET @i = @i + 1
51         END
52
53     SELECT  *
54     FROM    Rep_ICFueling
55     --select * from #TmpOilTypeName
56     DROP TABLE #TmpOilTypeName
57 END

----------------------------------------------------华丽的分割线--------------------------------------------------------------

至此,sql prompt的格式设置完了,大家可以格式化一下你们的代码试一下符合自己的要求不

最后说一下实验室里的一个自动刷新功能,这个自动刷新功能对于多人修改同一个数据库脚本,例如同一个存储过程,函数

是很有用的。应该大家都有用版本管理软件吧,例如:Visual SourceSafe 就可以管理sqlserver数据库里的一个库里的所有sql脚本

不多说了,看一下这个刷新功能,先启用这个功能啦第一步

然后在SSMS里新建两个查询窗口,第一个查询窗口在tempdb数据库里新建一个表,然后在第二个查询窗口就可以马上看到新建的表

写完了,要睡了,祝大家好梦!!

--------------------------------------------------------------------------------------------------------------

2013-8-27 补充:

发觉格式化TSQL代码的时候还可以指出TSQL代码的语法错误,个人觉得比SSMS的分析代码语法好用多了

当你点击“Format SQL”按钮的时候,如果您的TSQL代码有语法错误,就会以下划的红色波浪线标出来,非常方便

SQL PROMPT也根据SQLSERVER版本来开发的

时间: 2024-10-08 14:59:39

SQL PROMPT5.3.4.1的一些设置选项的相关文章

Jmeter 施压 SQL server数据库的时候,如何设置?

1. 在应用Jmeter进行施压之前,有个重要的端口需要手动查找出来.该端口在第三部要使用.开始——程序——microsoft SQL Server 2008R2——配置工具——SQL Server 配置管理器进入SQL Server Configuration Manager,点击SQL server 网络配置——MSSQLSERVER的协议,选中右边的tcp/ip,右键——属性——点击“IP 地址”的选项卡 TCP动态端口2. 在网上下载:sqljdbc4-3.0.jar 放到Jmeter的

SQL Server2008为表的某列设置默认值为SQL Server函数

  例如,设置SQL Server函数GETDATE()作为默认值: SQL Server2008为表的某列设置默认值为SQL Server函数

在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连

sql server服务器sqlserver远程连接数据库防火墙在建立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连 在建立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导 致此失败. (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) 为什么.我已经在SQL的外围配置设置中把他的

Navicat Report Viewer 设置选项的问题

Navicat Report Viewer 常见的功能是给没有运作Navicat的计算机但安装了Navicat Report Viewer的用户分析报表.其用户介面是经过精心设计的,不仅可以快捷和简单地访问报表,还可以把报表打印成不同的格式.而且Navicat Report Viewer 也给用户提供了附加选项设置,满足用户的个性化需求.下面就给大家分享一下Navicat Report Viewer 设置选项的问题? 原文:http://www.formysql.com/jiqiao/viewe

SOAP 格式设置选项

SOAP 格式设置选项 两个格式设置选项为: Style:适用于 SOAP 消息中 Body 元素的子元素(也可能是孙级).此选项指定为 binding WSDL 元素(通常情况下)或 operation 元素的 style 属性. Use:适用于出现在下一个级别的 Web 服务方法参数(或返回值).此选项指定为 body 元素的 use 属性. 有关 SOAP 规范的详细信息,请访问 W3C 网站 (http://www.w3.org/TR/SOAP).有关 WSDL 规范的详细信息,也可以访

雨林木风Win10开始菜单为什么&quot;设置&quot;选项会消失?

大家使用Win10的时候,有没有发现Win10虽然问题挺多的,但是真的挺好用的.但也有不少人觉得太麻烦了,而且有很多问题,比如说Win10开始菜单设置选项没了,很多功能都不能用了.所以小编在这里来帮助大家解决雨林木风Win10开始菜单没有"设置"问题. 推荐雨林木风Win10装机版系统下载:http://www.ylmf10.com/win10zhuangji 1.设置全屏开始菜单后,我们点击开始即可,想回到桌面的话再点一次开始. 2.打开所有程序列表,则点击电源按钮下方的选项. 3.

Android设置选项开发及自定义Preference样式

一个完整的Android应用程序都应该提供选项(或者叫偏好设置等等)让用户对APP的表现形式能够进行设置,比如说是否加入用户体验计划,或者是否自动升级.定时提醒.开启自启动.后台运行等等.提供一个好的设置项,会大大提升APP的用户体验.为了完成这样的功能,你不必从头开始写Activity或者Fragment,因为Android已经提供了实现这个功能的API,并且会自动将用户设置以键值对的形式存入SharedPreference(Android的四大存储方式之一)中.在3.0以前的系统,使用Pre

vsftp的设置选项

设置匿名用户上传的文件的权限: anon_umask= 匿名用户新增文件的umask 数值.默认值为077. VSFTPD的设置选项 VSFTPD的配置文件/etc/vsftpd/vsftpd.conf是个文本文件.以“#”字符开始的行是注释行.每个选项设置为一行,格式为“option=value”,注意“=”号两边不能留空白符.除了这个主配置文件外,还可以给特定用户设定个人配置文件,具体介绍见后.  VSFTPD包中所带的vsftpd.conf文件配置比较简单,而且非常偏执狂的(文档自称).我

在vs2008中添加lib文件以及一些常用项目设置选项

下面以添加ws2_32.lib文件为例 方法一(直接添加代码): 直接在.cpp文件中,添加#pragma comment(lib, "ws2_32.lib");即可.(ws2_32.lib即为你要添加的lib文件) 方法二(在vs工具栏中添加): 1.项目(project) -> TcpSrv属性(TcpSrv properties) (其中TcpSrv为工程名) 2.打开TcpSrv属性页后,配置属性 -> 链接器(linker) -> 输入(Input) ,在附