0

テーブル Tru.Repo が存在しない場合、エラーをスローする次のものがあります。

IF (NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'Tru' AND TABLE_NAME = 'Repo')) OR 
   (NOT EXISTS (SELECT * FROM Tru.Repo WHERE RepoName = 'Tru.Repo'))
BEGIN
    print('in')
END

しかし、Tru.Repo が存在しない場合、最初のステートメントは true であると予想されますが、なぜ 2 番目のステートメントを実行するのでしょうか? 単一の IF ブロックを使用してこれを回避する方法はありますか?

4

2 に答える 2

2

T-SQL は解釈されるため、最初にすべてが有効であることを確認する必要があります。動的 SQL で解決できますが、それは非常に面倒です。

于 2014-07-02T22:06:21.973 に答える