ssms 建表时,数据类型有哪些无法自动补全(无法联想)如何解决

sql2008的命令自动补齐功能在哪设置 包括查询的表明自动补齐 不想用插件 这个好像2008自带的有这个功能 难道我装的版本不对

sql2008的命令自动补齐功能在哪设置 包括查询的表明自动补齐 不想用插件 这个好像2008自带的有这个功能 难道我装的版本不对

楼主说的是自动联想功能吧任何版本都有,在工具--》屬性里设置一下就可以了

默认就有啊,提示出来以后打确定就补齐了

楼主说的是自动联想功能吧任何版本都有,在工具--》属性里设置┅下就可以了

我的默认没有 难道是我装的饿版本不对-_-

我的突然也不行了,不知道为什么

勾上“自动列出成员”和“参数信息”

默认的应該是打勾的  如果还没有的话 应该是安装的时候出现问题了

     可能很多人用了sqlServer2008很久都不知道其实sqlServer2008有强大的代码提示功能,代码提示可以方便峩们进行开发! 下面会介绍两种方法去开启这个功能一个是自身软件的提示设置,另一个是利用一个插件

首先确认 自己的sqlServer2008自身的提示功能有没有被屏蔽了!

如果还不行建议下一个自动提示工具 ——/s/1sjK1G9R


注意提供了SSMS 18教程的更新版本

17SSMS)扩展的绝对的初学者指南。如果您不知道从哪里开始创建自己的扩展那么您来对地方了。它将只涵盖为从头开始开发SSMS扩展而设置开發环境的基础知识

如果您想跳过我的悲伤故事以及我创建本教程的原因,您可以转到要求部分直接跳转到项目。

Studio而创建的该版夲在撰写本文时为17.6。扩展旧版SSMS的过程应该类似

StudioSSMS)扩展来简化已经是一个简单的操作,而此操作我每周重复几次我想,它有多难......这只昰一个简单的操作您单击菜单上的某个按钮,会发生一些简单的事情我想,这将是简单而直接的这将是一个有趣的项目。我知道存茬SSMS扩展它们不是很多,不像Visual Studio那样多但确实存在。必须有一些好的初学者教程......必须有一个体面的文档解释所有的点点滴滴提供一些示唎代码。我只需要谷歌搜索一下几个小时后可以继续前进。

孩子我错了!那里没有任何东西。有关创建SSMS扩展的文档不存在可用的教程很少,而且很遗憾其中大多数都太旧了,解释了不再支持的旧的加载项系统所以不幸的是它们几乎没用。所有存在的只是分散在互聯网上的不完整的知识和记录的经验

Studio扩展的教程可以帮助我开始。好吧不是真的。一旦你启动并运行它们就会有所帮助但是没有一個教程可以向我解释如何让SSMS扩展项目继续进行。

希望对其他人来说这就是教程......

正如您将在下面看到的那样,该过程远非简单或直观并苴可能非常快速地变得非常棘手。让我们开始吧

Studio但没有可扩展性工具,则可以通过控制面板中的程序和功能将它们添加到当前咹装中

Isolated shell,我认为这可能是此类项目的更兼容的版本并决定坚持下去如果您是一位经验丰富的用户,那么您可以使用Visual Studio 2017

首先,我们将首先创建一个简单的Visual Studio扩展然后将其移植到SSMS。要创建新的Visual

为了给我们的扩展提供一些功能我们将在解决方案资源管理器中右键单击我们的項目,选择Add> New Item ...然后选择Visual

应该启动一个新的Visual Studio实例(实验实例)我们可以在工具菜单中找到名为“Invoke HelloWorldCommand”命令(如果这是你第一次这样做,你可能需要通过Visual Studio的实验实例初始化设置向导)如果我们现在尝试单击该命令,我们应该看到原始实例中的断点被命中并且由于我们的命令玳码而出现一条消息。

我们现在可以关闭消息框和实验实例更改消息以显示来自SSMS扩展的Hello World然后再次尝试查看更改是否生效启动調试会话,然后再次单击该命令它现在应该显示新消息。

很简单吧嗯,这是容易部分的结束和问题开始的地方

好的,现在让我们尝試将我们的扩展移动到SSMS我们要做的第一件事是在开始调试时启动SSMS而不是Visual Studio。为此我们首先需要关闭Visual Studio并重新启动它,但这一次以管理员身份运行它(我们需要这样做,因为Visual Studio需要移动一些文件并执行此操作我们需要管理权限) 。进入Visual Studio后再次打开解决方案,在解决方案资源管理器中右键单击该项目然后选择属性

调试选项卡中通过将启动外部程序属性更改为:将外部程序更改为SQL


 
另外,┅个好主意(但不是必需的)是在命令行参数字段中设置/log参数以使SSMS将其活动记录到文件中,这可以帮助我们排除故障可以在以下位置找到日志文件(ActivityLog.xml):

 

所以,既然我们已经完成了所有设置我们可以尝试再次启动扩展。如果我们在Visual Studio中开始调试我们现在应该看到SQL Server Management Studio確实启动了,但我们的命令在工具菜单中找不到

此外,如果我们回到Visual Studio我们可以看到我们的断点没有激活。

这里不对劲好吧,SSMS在启动時会查找扩展名:
 
如果我们去那个地方我们可以看到我们的扩展不在那里。如果我们希望SSMS加载它我们的扩展需要在这里。所以让我們解决这个问题。再次打开项目的属性窗口这次打开VSIX选项卡。在其中选中VSIX内容复制到以下位置然后在文本框中输入SSMS Extensions文件夹茬该位置的末尾,我们将添加一个包含扩展名称的文件夹因此完整位置应如下所示:
 

再次开始调试并等待SSMS打开。看起来我们的扩展程序仍无法正常工作但如果我们转到extensions文件夹,我们可以看到新创建的文件夹那么为什么我们的扩展没有加载?如果查看活动日志可以看箌SSMS正在导入.pkgdef文件而不是其他内容。一切都应该没问题但事实并非如此。
您可以看到MicrosoftSSMS团队列出了允许SSMS加载的所有扩展。它只是一个白洺单中的的包GUID列表由这些GUID标识的包(扩展)被加载到SSMS中没有问题。SSMS不会加载任何其他内容我在某处读过,其原因是SSMS团队不希望SSMS充斥着無关的扩展另一个地方说微软最终应该包括对SSMS扩展的官方支持,这在未来不应成为问题但是在此之前,如果我们希望加载扩展程序峩们必须使用解决方法解决此问题(或者您可以联系MicrosoftSSMS团队并要求他们将您的扩展程序列入白名单)。那么这个包GUID是什么?我们如何解決这个问题呢
GUID只不过是您的扩展的唯一标识符,它可以在我们的项目中的两个位置找到第一个是在HelloWorldCommandPackage类中:
 
 
要解决验证问题,我们需偠在尝试启动时明确告诉SSMS跳过此程序包的验证为此,遗憾的是我们需要稍微编辑注册表要打开注册表编辑器,首先我们需要通过按键盤上的Windows + R打开运行窗口在其中,键入regedit并单击确定

注册表编辑器打开后,转到:
 
在其中检查是否有“Packages”键,如果没有请通过祐键单击14.0然后选择New>





在(新创建的)Packages键中,创建一个新键扩展名的包GUID用花括号括起来作为其名称。键名应如下所示:


 



在新密钥(包含GUID作为其名称的密钥)中通过右键单击该密钥并选择新建”>“DWORD32位)值来添加新的DWORD32位)值





创建值后右键单击它并将其重命名为SkipLoading。在此之后我们的最后一步是通过右键单击new(SkipLoading)值并从上下文菜单中选择Modify





只需在值数据字段中输入1,然后单击确定





您现在可以关闭注冊表编辑器。如果我们正确地执行此步骤我们的扩展应该在我们开始调试时最终加载到SSMS中。回到Visual Studio并试一试太好了,我们的命令就在这裏工作得很好。此外当我们尝试运行它时,我们可以看到我们的Visual Studio断点命中最后一切都很好。











问题是......如果SSMS正确加载扩展并且我们通过運行它来初始化它那么SSMS将从注册表中删除SkipLoading值,并且我们的扩展将在下次启动SSMS时不起作用这很容易检查。再次转到注册表编辑器自己查看包密钥中缺少的SkipLoading值。





只有在SSMS尝试初始化扩展时才会发生这种情况默认情况下,当你第一次运行扩展时会发生这种情况如果你再次添加SkipLoading,一切都会再次运行并且在开始调试时会加载扩展。如果在不运行命令的情况下关闭SSMSSSMS将不会初始化您的扩展,并且不会从注册表中删除该值但是,当我们尝试开发命令并在每次运行之间在注册表编辑器中重新设置值时不运行不是一个选项,这太耗时了为此,我们需要另一种解决方案和另一种解决方法我们将打开HelloWorldCommandPackage类并在其中添加以下方法:

 
 
我们在方法结束之前调用Initialize()方法。
 


我们添加的方法在Initialize方法完成2秒后恢复包的SkipLoadingSSMS从注册表中删除值。我们添加2秒延迟以便我们确保在SSMS有时间删除之前我们不会恢复该值。这将使我们最终开始开发我们的扩展如果我们启动SSMS但不运行命令,一切都很好因为扩展没有初始化,SSMS没有删除该SkipLoading值如果我们运行命令并且扩展程序初始化,那么代码将在SSMS删除它之后重新设置该值所以下次我们启动SSMS时我们的扩展应该加载得很好。我们可以通过在Visual Studio中点击Start来尝试这一点朂后开始开发我们全新的扩展。
假设您完成了扩展程序的开发并希望将其发送给朋友或同事。这很简单只需压缩位于SSMS Extensions文件夹中的HelloWorldSsmsExtension文件夾,发送它并告诉他将其放在同一位置。但是如果你不想让自己难堪,告诉他如何做注册表编辑器的黑客只是让你的扩展第一次进行(请记住扩展本身将在加载后设置SkipLoading值)。
事实证明我们可以让SSMS为我们设定这个值。回顾一下......如果你的扩展没有通过SSMS验证那么SSMS启动时僦不会加载它。但是要让SSMS知道您的扩展名是否为白名单,它至少必须读取构建扩展时生成的.pkgdef文件(包含包GUID以及其他配置信息)在其中,我们可以为SSMS发出指令以便在启动时自动加载扩展。有了这个指令SSMS不会在加载扩展时静默失败,而是会抛出一个错误我们可以使用咜来设置SkipLoading值。在错误消息中SSMS会抱怨扩展程序出现问题,并询问您是否应继续显示错误如果选择,则SSMS将自行添加SkipLoading值但遗憾的是,在启动时不会加载扩展名但是,下次启动SSMS时该值将存在,从那时起扩展本身将负责其在注册表中的存在。换句话说您只需要在選择后重新启动SSMS,从那时起一切都会好起来

 


这将迫使SSMS在启动时加载您的扩展,它将失败并且它将询问它是否应该继续显示错误您选择否,重新启动SSMS您应该看到您的扩展加载并正常工作。这只是SSMS的第一次启动才有问题但是,嘿这是我们现在得到的最好的东西。因此当您将扩展程序发送给朋友时,只需告诉他们选择否并在第一次后重新启动SSMS从那时起一切都会正常。
17扩展时所需要知道的全部內容对于旧版本的SSMS,该过程应该类似如果有人有任何其他有用的提示,请随时与我联系我会尝试在本教程中介绍它们。该HelloWorldSsmsExtension完整代码吔可从github下载地址如下:
 
注意:如果要尝试附加项目(或github上的项目),则需要首先在项目属性中设置启动外部程序属性

这些是我用來帮助我入门的资源,值得查看以获取更多信息:
  • (本教程主要基于这篇文章)
 
还有一些github项目可以用来获得更多想法:
 

我要回帖

更多关于 数据类型有哪些 的文章

 

随机推荐