0

サーバー上で実行して、データベース内のすべてのテーブルをロックせずにビューを作成できるスクリプトを探しています。ありがとう!

4

1 に答える 1

1

これが悪い考えであることには同意しますが、いくつかの例を示すことで得られる/学ぶべきことがまだあるかもしれません。しかし -- はい -- これは潜在的に非常に悪い考えですが、世界によってはこれが理にかなっている場合もあります。

これが 1 回限りのことである場合は、次のようなことを行うことができます。これにより、ビューの DDL が単純に作成されます(nolock)。コピペして実行するだけです。これを動的に生成する必要がある場合は、もう少し活用する必要があります。

以下についてのもう 1 つの警告 -select *スキーマ バインドなしでビューで使用されます。これらのタイプのビューは、基になるテーブル構造が変更された場合に自動的に更新されないため、非常に注意してください。他の保護手段がない限り、ビュー内の列を完全に修飾することをお勧めします。

select '
    create view ' + name + 'MayBeABadIdea as select * from ' + name + ' (nolock);
    go'
from sys.objects
where type = 'U'
order by name;
于 2016-06-14T02:45:25.003 に答える