摘自: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版本来开发的

转载于:https://www.cnblogs.com/GaoAnLee/p/7044666.html

SQL PROMPT5.3.4.1的一些设置选项相关推荐

  1. SqlServer开发利器—SQL Prompt5

    智能提示 SQL Prompt5的智能提示比SqlServer自带的要好很多,而且可以设置让关键字自动大写,对于数据库中的对象可以很方便的看到对象的创建脚本,如下图: 格式化代码 有时候我们把从程序中 ...

  2. SQL Server 2005客户端安装和端口设置

    版本:sql server 2005 exepress edition SQLEXPR_CHS.EXE 57.4MB 下载地址: http://www.microsoft.com/downloads/ ...

  3. 数据库-Oracle【Oracle数据库设置默认表空间问题及Oracle,SQL,MySQL的自增变量设置】...

    一. Oracle数据库设置默认表空间问题 DBA们经常会遇到一个这样令人头疼的问题:不知道谁在Oracle上创建了一个用户,创建时,没有给这个用户指定默认表空间,所以这个用户就会采用默认的表空间-- ...

  4. sql server 分区_SQL Server:锁定设置以用于增强分区功能

    sql server 分区 When talking about performance and scalability inside SQL Server, I don't see anyone m ...

  5. 在SQL Server中配置索引创建内存设置的最佳实践

    介绍 (Introduction) The Index Create Memory setting is an advanced SQL Server configuration setting wh ...

  6. SQL Prompt5 破解版+使用说明

    Red Gate系列文章: Red Gate系列之一 SQL Compare 10.2.0.1337 Edition 数据库比较工具 完全破解+使用教程 Red Gate系列之二 SQL Source ...

  7. sql2008 新建登录用户只能修改某一个表 服务器角色,sql语句创建新登录名和设置权限...

    use DBName go --新增用户 exec sp_addlogin '用户名','密码','默认数据库名' --添加登录 exec sp_grantdbaccess N'test' --使其成 ...

  8. OpenCASCADE绘制测试线束:布尔运算命令之设置选项的操作

    OpenCASCADE绘制测试线束:布尔运算命令之设置选项的操作 设置选项的操作 并行处理方式 安全处理模式 模糊选项 粘合选项 bcheckinverted OBB使用 结果简化 绘制警告形状 设置 ...

  9. anki怎么设置学习计划_anki如何设置选项(学习任务)?

    这个问题被浏览了那么多次,点赞就几个,难道大家都萌生发财? <<<>>> 问题可以定位为 anki如何设置选项(学习任务)? ankidroid的选项设置 打开一个 ...

最新文章

  1. 芝大教授: 博士培养正沦为“庞氏骗局”
  2. 手机存储sqlite还是mysql_手机存储 和sd 路径
  3. MBTiles 1.2 规范翻译
  4. java compare 返回值_关于Java你不知道的那些事之Java8新特性[Lambda表达式和函数式接口]...
  5. Linux Ubuntu常用命令
  6. 类模板static成员的使用
  7. Linux/Ubuntu: 使用 trash-cli 防止 rm 命令误删除重要文件
  8. Spark逻辑图的执行
  9. 都是过客,相煎何急?
  10. c语言在线电子词典的实验报告,《第十六周实验报告任务3——电子词典》
  11. 2019年美国大学生数学建模注意事项(摘https://www.comap.com/undergraduate/contests/)(重点:论文提交方式)
  12. 苹果8wifi找不到服务器,教大家遇到苹果手机iPhone11搜不到无线网怎么解决
  13. Python 绘制圆锥体(3D图)
  14. Android中Uri 和Path之间的相互转化
  15. 雪都阿勒泰滑雪爱好者首选地
  16. Matlab 用途(我的理解)
  17. c语言用户自定义类型,c语言用户自定义数据类型.ppt
  18. 求最大公约数和最小公倍数算法
  19. 金鹰Authorware视频教程
  20. 假面科技披露赌博处理情况 狼人杀APP反赌系统将持续开发

热门文章

  1. 处理后台返回文本带空格和换行页面不显示断句的问题
  2. python迷宫最短路径_python实现最短路径的实例方法
  3. npcap loopback adapter是什么意思_抖音限流是什么意思? 抖音为什么突然限流?
  4. 安装教程-VMware 12 安装 Windows 10 企业版
  5. Gym 100917J---Judgement(01背包+bitset)
  6. ArcGIS生成根据点图层生成等值面并减小栅格锯齿的操作步骤
  7. Bootstrap系列 -- 23. 图片
  8. Perl学习笔记(六)--文件(一)
  9. Selenium Webdriver ie 浏览器
  10. DecimalFormat很强大