サーバー上で実行して、データベース内のすべてのテーブルをロックせずにビューを作成できるスクリプトを探しています。ありがとう!
1256 次
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 に答える