1

キーワードに関する大文字と小文字の区別に関する記事をいくつか見たことがありますが、何かについて少し混乱しており、ネクロ投稿したくないので、ここに投稿することにしました。

SQL Server Management Studio を使用していますが、次のような SQL コードが表示されます。

SELECT * from custTable as A
INNER JOIN custTable as a
ON A.custID = a.custID

そして、次のようなSQLコードも表示されます

SELECT A.CustID FROM custTable A 
INNER JOIN
(SELECT a.CustID FROM custTable a
    JOIN
    (SELECT A.CustID FROM custTable A
        JOIN 
        (SELECT CustID FROM custTable
        WHERE  [CustID] = 1
        GROUP BY [CustID] ) ap ON A.CustID = ap.CustID  
        GROUP BY A.[CustID] ) m ON A.CustID = m.CustID ) AP ON ap.CustID = A.CustID

どうやら、SQL コードはエイリアスに関して大文字と小文字を区別すると見なされます。しかし、上記と同様のコードが次のように書かれているのを見たことがあります。

SELECT A.CustID FROM custtable A 
INNER JOIN
(SELECT a.CustID FROM CustTable a
    JOIN
    (SELECT A.CustID FROM CUSTTABLE A
        JOIN 
        (SELECT CustID FROM Custtable
        WHERE  [CustID] = 1
        GROUP BY [CustID] ) ap ON A.CustID = ap.CustID  
        GROUP BY A.[CustID] ) m ON A.CustID = m.CustID ) AP ON ap.CustID = A.CustID

どうやら、SQL コードは、テーブル名に関して大文字と小文字を区別しないと見なされます。

これは、テーブル名が基本的に文字列定数で、エイリアスがローカル変数のようなものだからでしょうか?

4

1 に答える 1

2

一般に、SQL Server は、キーワード、エイリアス、またはテーブル名に関して大文字と小文字を区別しません。

あなたの例では、「a」と「A」のエイリアスは同等です。ただし、それらは異なる範囲にあります。on節には常に、"ap" と "A"、"A" と "m" などの異なるエイリアスがあることに注意してください。

必要に応じて、SQL Server インスタンスで大文字と小文字を区別することができます (こちらを参照)。ドキュメントによると、SQL Server は大文字と小文字の両方の予約語を予約しています。大文字と小文字が混在する予約語も予約されているかどうかはわかりません。

于 2013-01-03T21:51:47.673 に答える