0

解決策: https://stackoverflow.com/a/439768/857994は次のコードを提供します:

    DELETE TableA 
    FROM TableA a
    INNER JOIN
    TableB b on b.Bid = a.Bid
    and [my filter condition]

私の質問は:

TableA を here にエイリアスするために FROM に AS が必要ないのはなぜですか? のような選択クエリで AS は必要ではないでしょうSELECT E.FirstName FROM Employee AS E;か?

違いは何ですか?

4

3 に答える 3

3

そこにある「AS」キーワードはオプションです。SELECTクエリでも必要ありません。(それを試してみてください!)

MSDNの「FROM」の構文の一部を次に示します。

[ FROM { <table_source> } [ ,...n ] ] 
<table_source> ::= 
{
    table_or_view_name [ [ AS ] table_alias ] [ <tablesample_clause> ] 
    ...
}

ご覧のとおり、[ AS ]は角かっこで囲まれています。これはオプションであることを意味します。追加する必要はありませが、クエリが読みやすくなると主張する人もいるかもしれません。私は同意しませんが、それは個人的な好み(またはあなたのDBAの個人的な好み)の問題です。

詳細については、 http://msdn.microsoft.com/en-us/library/ms177634.aspxを参照してください。

于 2012-04-11T15:58:21.260 に答える
2

それらは同じものであり、「as」または「out」でエイリアスされます。参照: http ://www.tsqltutorials.com/aliases.php

于 2012-04-11T15:58:35.283 に答える
-1

選択する列名をエイリアシングする場合はASが必要ですが、FROM句でテーブル名をエイリアシングする場合は必要ありません。そして、いいえ、その2番目の短いSELECTではASは必要ありません。

「それが言語の定義された構文である」以外に、これに「理由」はありません。言語デザイナーの秘密の隠された動機を二番目に推測しようとすると、何の役にも立たないことがわかります。

于 2012-04-11T15:58:29.153 に答える