Я ищу сценарий, который я могу запустить на своем сервере для создания представлений без блокировки для всех моих таблиц в моей базе данных. Благодаря!T-SQL Создайте представление без блокировки для всех таблиц в базе данных
ответ
Хотя я согласен с тем, что это плохая идея, все еще может быть что-то, что можно получить/узнать, показывая несколько примеров. Но - да - это потенциально очень плохая идея, но в некоторых странах это может иметь смысл.
Если это одноразовая вещь, вы можете сделать что-то подобное, что просто создаст DDL для просмотров с помощью (nolock)
. Вам просто нужно скопировать-вставить и выполнить. Если это нужно динамически генерировать, необходимо немного больше использовать.
Еще одно предостережение о нижеследующем - оно использует select *
в виде без привязки схемы. Будьте особенно осторожны с этими типами представлений, поскольку они не обновляются автоматически, если меняется структура базовой таблицы. Целесообразно и хорошая практика полностью квалифицировать столбцы в представлениях, если у вас нет других гарантий.
select '
create view ' + name + 'MayBeABadIdea as select * from ' + name + ' (nolock);
go'
from sys.objects
where type = 'U'
order by name;
Спасибо. Я полностью согласен с тем, что это не лучшая идея; Мне нужно иметь возможность запрашивать мою базу данных CTI в режиме реального времени без блокировки таблиц. К сожалению, для здравоохранения требуется некоторый живой поиск данных, но я не хочу препятствовать моей маршрутизации и доставке вызовов. –
Можете ли вы объяснить, почему? – Mike
Установить [Плохие привычки пинать NOLOCK повсюду] (http://blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere/) - это НЕ РЕКОМЕНДУЕТСЯ *** использовать это везде - наоборот! –