厌倦了键入像“SQL”这样的SQL脚本;从";中选择前10个*;和其他类似的脚本。如何在SSMS中创建别名/快捷方式?
在我的工作中做了大量的研究,我一直在写一些通用的脚本,比如“从中选择前十名”等等 有没有一种方法可以让我写一些类似于代码片段的东西,这样当我键入“ss”+空格/Tab时,它会插入“selecttop10*FROM”脚本厌倦了键入像“SQL”这样的SQL脚本;从";中选择前10个*;和其他类似的脚本。如何在SSMS中创建别名/快捷方式?,sql,sql-server,alias,sql-scripts,Sql,Sql Server,Alias,Sql Scripts,在我的工作中做了大量的研究,我一直在写一些通用的脚本,比如“从中选择前十名”等等 有没有一种方法可以让我写一些类似于代码片段的东西,这样当我键入“ss”+空格/Tab时,它会插入“selecttop10*FROM”脚本 我注意到我使用了很多脚本,我想为它们创建一些别名…不,在SQL Server内部没有办法做到这一点(我不认为在任何其他数据库中) 基本上,您正在寻找某种宏预处理,而这不是SQL语言的一部分,尽管某些数据库可能在其脚本语言中支持它,或者某些工具可能支持它 嗯。我突然想到,您可以使用
我注意到我使用了很多脚本,我想为它们创建一些别名…不,在SQL Server内部没有办法做到这一点(我不认为在任何其他数据库中) 基本上,您正在寻找某种宏预处理,而这不是SQL语言的一部分,尽管某些数据库可能在其脚本语言中支持它,或者某些工具可能支持它 嗯。我突然想到,您可以使用存储过程。如果你想写:
exec top10 'tablename';
然后将程序定义为:
create procedure top10 (@t nvarchar(max)) as
begin
declare @sql nvarchar(max);
set @sql = 'select top (10) * from [' + @t + ']';
exec sp_executesql @sql;
end;
不,在SQLServer中没有办法做到这一点(我认为在任何其他数据库中都没有) 基本上,您正在寻找某种宏预处理,而这不是SQL语言的一部分,尽管某些数据库可能在其脚本语言中支持它,或者某些工具可能支持它 嗯。我突然想到,您可以使用存储过程。如果你想写:
exec top10 'tablename';
然后将程序定义为:
create procedure top10 (@t nvarchar(max)) as
begin
declare @sql nvarchar(max);
set @sql = 'select top (10) * from [' + @t + ']';
exec sp_executesql @sql;
end;
您可以走出SSMS,依靠设置的热键(无论您是否在SSMS中,它都会触发)。自动热键()可用于此实现,它描述了如何实现您的确切场景。您可以走出SSMS,依靠已设置的热键(无论您是否在SSMS中,它都将启动)。Autohotkey()可用于此实现,它描述了如何实现您的确切场景。虽然您可以创建代码段,但选择代码段很麻烦 它仍然需要:
CTRL-K CTRL-X M S
才能获得:
从表1中选择前10个*
并能够键入所需的表名
片段:
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<_locDefinition xmlns="urn:locstudio">
<_locDefault _loc="locNone" />
<_locTag _loc="locData">Title</_locTag>
<_locTag _loc="locData">Description</_locTag>
<_locTag _loc="locData">Author</_locTag>
<_locTag _loc="locData">ToolTip</_locTag>
</_locDefinition>
<CodeSnippet Format="1.0.0">
<Header>
<Title>Select</Title>
<Shortcut></Shortcut>
<Description>SELECT TOP 10 * FROM ....</Description>
<Author>?</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
<Shortcut>select</Shortcut>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>TableName</ID>
<ToolTip>Name of the table</ToolTip>
<Default>Table1</Default>
</Literal>
</Declarations>
<Code Language="SQL"><![CDATA[
SELECT TOP 10 * FROM $TableName$
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
标题
描述
作者
工具提示
挑选
从…中选择前10个*。。。。
虽然您可以创建代码段,但选择代码段却很烦人
它仍然需要:CTRL-K CTRL-X M S
才能获得:
从表1中选择前10个*
并能够键入所需的表名
片段:
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<_locDefinition xmlns="urn:locstudio">
<_locDefault _loc="locNone" />
<_locTag _loc="locData">Title</_locTag>
<_locTag _loc="locData">Description</_locTag>
<_locTag _loc="locData">Author</_locTag>
<_locTag _loc="locData">ToolTip</_locTag>
</_locDefinition>
<CodeSnippet Format="1.0.0">
<Header>
<Title>Select</Title>
<Shortcut></Shortcut>
<Description>SELECT TOP 10 * FROM ....</Description>
<Author>?</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
<Shortcut>select</Shortcut>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>TableName</ID>
<ToolTip>Name of the table</ToolTip>
<Default>Table1</Default>
</Literal>
</Declarations>
<Code Language="SQL"><![CDATA[
SELECT TOP 10 * FROM $TableName$
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
标题
描述
作者
工具提示
挑选
从…中选择前10个*。。。。
您可以使用函数(sql server)。。。参数化表名。如何创建函数go to SSMS支持代码段,允许您在命令中插入预定义(可选参数化)的代码块。但是它不支持它们的键盘快捷键(尽管它在代码段文件的规范中)。是此功能的文档,如果您有Redgate提供的前10个*之外的其他需求,那么它可能会更有用。是的@TGnat一些供应商工具可以做到这一点。我们使用的竞争对手是您指定的竞争对手。我从不使用这个功能tho@TGnat,谢谢你的提示。我实际上使用了RedGate,但不知道SQL提示符。发现添加一个代码片段非常容易。谢谢您可以使用函数(sql server)。。。参数化表名。如何创建函数go to SSMS支持代码段,允许您在命令中插入预定义(可选参数化)的代码块。但是它不支持它们的键盘快捷键(尽管它在代码段文件的规范中)。是此功能的文档,如果您有Redgate提供的前10个*之外的其他需求,那么它可能会更有用。是的@TGnat一些供应商工具可以做到这一点。我们使用的竞争对手是您指定的竞争对手。我从不使用这个功能tho@TGnat,谢谢你的提示。我实际上使用了RedGate,但不知道SQL提示符。发现添加一个代码片段非常容易。谢谢SQL宏从20c开始就是Oracle的一部分,它们也被后移植到了19.7。然而,我将此需求解释为希望由客户端代码编辑器(本例中为SSMS)实现的内容。谢谢。从20c开始,SQL宏就是Oracle的一部分,它们也被后移植到了19.7。然而,我将此需求解释为希望由客户端代码编辑器(本例中为SSMS)实现的内容。非常感谢。