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

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

csp真题202112-1 序列查询 (100分)

#include <iostream> using namespace std; int A[1000000]{0};//c中一定一定要要记得给变量赋初始值&#xff0c;会减少很多不必要的麻烦 //尽可能将数组量大的数组定义在函数外面&#xff0c;不要在函数内部定义大数组 int main() {int n0,N0,sum0,i0;cin>>n&g…

云麦小米华为体脂秤怎么样_测评华为智能体脂秤,比小米智能体重秤贵30元到底差别在哪里?...

“流浪的好奇”每天更新最新科技资讯和产品测评内容&#xff0c;欢迎您关注订阅&#xff01;我们之前说过华为可不仅仅只有5G通讯技术和智能手机&#xff0c;华为杂货铺里的产品虽然不如小米杂货铺那么的丰富&#xff0c;但是也不是空铺一个&#xff0c;还是有一些华为主业之外…

c++中引用和指针的区别

指针是指向一块内存&#xff0c;它的内容是所指内存的地址&#xff1b; 而引用则是指向某块内存变量的一个别名&#xff0c;相当于变量的另一个名字。 例如&#xff1a; #include <stdio.h> int main() {int a2;int &ba;printf("a:%d\n",a);printf("…

什么是大数据,怎么理解和应对大数据时代

什么是大数据&#xff0c;怎么理解和应对大数据时代 在大数据与深度学习中蝶化的人工智能。当代人工智能离不开大数据和深度学习算法。我们先来了解什么是大数据&#xff0c;大数据的本质是什么&#xff0c;在大数据时代我们应该如何应对&#xff1f; 当我们谈论数据的时候我们…

android 手机获取公网ip_KSWEB 旧手机搭建网站服务

? 感谢你阅读「 Android 应用 」的第 113篇分享文章KSWEB 是一款由俄罗斯开发者开发的一款可以在 Android 手机上安装建站相关服务的应用&#xff0c;支持 Lighttpd、Nginx、Apache、MySQL、FTP、PHP 等。打开应用后点击不再提醒忽略弹窗&#xff0c;给予权限后等待片刻按照提…

盘锦工业机器人厂家_盘锦制造进入“机器人时代”

原标题&#xff1a;盘锦制造进入“机器人时代”——盘锦高新区企业技术创新见闻“忽如一夜春风来&#xff0c;千树万树梨花开。”最近&#xff0c;记者走访了盘锦高新区部分装备制造企业&#xff0c;那一个又一个“机器人”&#xff0c;正在形成盘锦“机器人方队”&#xff0c;…

如何判断windows版本?

windows版本名称太多&#xff0c;怎么通过版本号&#xff0c;取得对应的版本名称&#xff1f; 版本号与市场名称的关系 在微软与IBM分家的时候Windows操作系统改名叫做Windows NT&#xff0c;第一个版本是Windows NT 3.1。 后来由于市场需要&#xff0c;在每次发布Windows之前&…

phpStydy配置memcache扩展

phpStydy配置memcache扩展 先提示一点&#xff1a;我电脑是win7 64 位的&#xff0c;但我用的环境是phpstudy (php5.6nginx); 下面的下载里我下载64位软件安装后没反映&#xff0c;因为phpstudy环境是32位的,下载32位安装后memcache就成功了; 一、下载并安装memcached服务器端软…

hadoop 计算几点 主节点_01-Hadoop的介绍

Hadoop的介绍Hadoop最早起源于Nutch.Nutch的设计目标是构建一个大型的全网搜索引擎&#xff0c;包括网页抓取、索引、查询等功能&#xff0c;但随着抓取网页数量的增加&#xff0c;遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题. 2003年、2004年谷歌发表的两…

使用traits技术表现迭代器类型 iterator_category

1.STL的迭代器类型标识&#xff0c;和容器中的迭代器类型。 2.使用trait技术实现stl的advance功能。 3.迭代器trait中的其他类型定义。 1.STL的迭代器类型标识&#xff0c;和容器中的迭代器类型。 熟悉的迭代器类型&#xff0c;输入、输出、前向、双向、随机。 c标准程序库分别…

外部仓库_仓库主要作业流程和WMS作业优化方案

仓库在人们眼中一直是低效、高成本的地方&#xff0c;即便是增加人手也很难做好仓库管理。那么我们应该采取哪些方式来管理&#xff0c;才能做到降本增效呢&#xff1f;首先我们需要先了解仓库主要作业流程及在作业中存在的痛点。1入库流程a.商品SKU太多&#xff0c;部分形状相…

java IO流(上)

1.字节流 1.1 IO流概述和分类【理解】 1.IO流介绍 IO&#xff1a;输入/输出(Input/Output)流&#xff1a;是一种抽象概念,是对数据传输的总称.也就是说数据在设备间的传输称为流,流的本质是数据传输IO流就是用来处理设备间数据传输问题的.常见的应用: 文件复制; 文件上传; 文…

java类与对象实验报告心得体会_第四周课程总结与实验报告(Java简单类与对象)...

1.写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color&#xff0c;width和height都是double型的&#xff0c;而color则是String类型的。要求该类具有&#xff1a;(1) 使用构造函数完成各属性的初始赋值(2) 使用get…()和set…()的形式完成属性的访问及修…

《科技之巅2》序——机器智能数据智能:工具之王

原文链接 “凡是过去&#xff0c;皆为序曲。”——莎士比亚 通过不断发明工具&#xff0c;人类科技指数级进化。语言汇聚原始部落&#xff0c;马镫开启了中世纪的欧洲文明&#xff0c;“高产种子”引发人口爆炸&#xff0c;蒸汽机创造工业文明&#xff0c;大规模集成电路激活数…

一、java面向对象基础

1. 类和对象 面向对象和面向过程的思想对比 : ​ 面向过程 &#xff1a; 是一种以过程为中心的编程思想&#xff0c;实现功能的每一步&#xff0c;都是自己实现的 ​ 面向对象 &#xff1a; 是一种以对象为中心的编程思想&#xff0c;通过指挥对象实现具体的功能 1.1 类和对…

quint32转化为qstring_QT中字符串QString类型的转换

把QString转换为 double类型方法1.QString str"123.45";double valstr.toDouble(); //val123.45方法2.很适合科学计数法形式转换bool ok;double d;dQString("1234.56e-02").toDouble(&ok); //oktrue;d;12.3456.把QString转换为float形1.QString str&qu…

Linux 普通用户拿到root权限及使用szrz命令上传下载文件

1.如何拿到root权限 在shell里如果看到你的命令输入行最前面显示的是 $符号&#xff0c;说明目前账号只有系统的普通权限。 输入&#xff1a;sudo su 这时能看到shell的输入行最前面已经显示的是#号&#xff0c;说明已经是root权限了。 2.安装szrz命令 首先需要在yum的下载源里…

pythom打包文件太大_从SQL注入到整站打包与本地搭建

一、前言如题&#xff0c;由于是在已知有一处sql注入的情况下才接手进行的后续操作&#xff0c;因此前面信息搜集则一笔带过。二、信息搜集目标是个本地的传销站点其大致信息为IISASP.NET安全狗、腾讯云。三、Bypass Sql3.1 Fuzz空格 error 加号 未拦截 等号 er…

二、常用API——String类和StringBuilder类

1.API 1.1 API概述-帮助文档的使用 什么是API ​ API (Application Programming Interface) &#xff1a;应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的各种功能的 Java类&#xff0c;这些类将底层的实现封装了起来&#xff0c;我们不需要关心这些类是如何实现的&a…

运算符的优先级

运算符的优先级和结合性 优 先 级 运 算 符 含 义 运算对象个数 结合方向 1 () 圆括号 自左向右 [] 下标运算符 −> 指向结构体成员运算符 . 结构体成员运算符 2 ! 逻辑非运算 1&#xff08;单目&#xff09; 自右向左 &#xff5e; 按位取反…