Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
厌倦了键入像“SQL”这样的SQL脚本;从";中选择前10个*;和其他类似的脚本。如何在SSMS中创建别名/快捷方式?_Sql_Sql Server_Alias_Sql Scripts - Fatal编程技术网

厌倦了键入像“SQL”这样的SQL脚本;从";中选择前10个*;和其他类似的脚本。如何在SSMS中创建别名/快捷方式?

厌倦了键入像“SQL”这样的SQL脚本;从";中选择前10个*;和其他类似的脚本。如何在SSMS中创建别名/快捷方式?,sql,sql-server,alias,sql-scripts,Sql,Sql Server,Alias,Sql Scripts,在我的工作中做了大量的研究,我一直在写一些通用的脚本,比如“从中选择前十名”等等 有没有一种方法可以让我写一些类似于代码片段的东西,这样当我键入“ss”+空格/Tab时,它会插入“selecttop10*FROM”脚本 我注意到我使用了很多脚本,我想为它们创建一些别名…不,在SQL Server内部没有办法做到这一点(我不认为在任何其他数据库中) 基本上,您正在寻找某种宏预处理,而这不是SQL语言的一部分,尽管某些数据库可能在其脚本语言中支持它,或者某些工具可能支持它 嗯。我突然想到,您可以使用

在我的工作中做了大量的研究,我一直在写一些通用的脚本,比如“从中选择前十名”等等

有没有一种方法可以让我写一些类似于代码片段的东西,这样当我键入“ss”+空格/Tab时,它会插入“selecttop10*FROM”脚本


我注意到我使用了很多脚本,我想为它们创建一些别名…

不,在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)实现的内容。非常感谢。