2

こんにちは、よろしくお願いします。新しいビューを作成した後にコードが変更された理由を知りたいのですが、これは2つの異なるIDE、Server StudioとRazorSQLで発生しました。これは、例です。

元のコード:

SELECT T_USER.ID IDUSER, T_DEP.DESCRIPTION DEPARTMENT

FROM TABLE1 T_USER
INNER JOIN TABLE2 T_DEP ON TABLE2.ID = TABLE1.ID

ビューを作成した後

DROP
    VIEW orales:vw_test;
CREATE
    view "owner".vw_test (id, description) as
SELECT
        x0.id   
        x1.description ,

FROM
    ("owner".table1 x0 JOIN "owner".table2 x1
        ON
        ((x1.id = x0.id)));

コンパイラなどがテーブルのエイリアスの名前と内部結合の句を上書きしないようにする方法を知りたいです。

ありがとうございました :)

4

1 に答える 1

2

この振る舞いを防ぐことはできません。

実際、すべてのデータベースがこれを行います。生のクエリは、独自の形式でデータベースに保存される抽象構文ツリーに解析されます。

表示されているのは、そのASTを有効なSQLステートメントとしてレンダリングしていることです。

あなたの元のクエリはずっとなくなっています。


クエリのソースを「管理」するためにデータベースに依存するべきではありません。元のクエリは「コード」であり、プロジェクト内の他のすべてのコードと同じように、バージョン管理システムで管理する必要があります。そうすることは、データベース内のクエリの内部表現が無関係であることを意味し、もちろん、VCSの他のすべての利点を提供します。

于 2013-02-23T00:50:50.280 に答える