|
По материалам статьи Brian Knight "SP_MSForeachtable - Life
Without Cursors" Многие задачи, по привычке, решаются с помощью курсоров.
Однако, в глубинах базы данных master скрыт ряд хранимых
процедур, которые могут заменить некоторые курсоры. Курсоры
все еще будут использоваться, но новые возможности позволят
Вам уделять больше времени непосредственно для
разработки. DECLARE @dataname varchar(255), DECLARE datanames_cursor CURSOR FOR SELECT name FROM
master..sysdatabases Начинаясь с версии 6.5 SQL Server, Микрософт ввёл хранимую процедуру, называемую sp_MSreachfortable. Используя символ вопроса как указатель на список всех имён таблиц, процедура будет делать то же самое, что и вышеупомянутый курсор, но будет умещаться только в одну строку. Вы можете заменять курсор следующей командой: sp_MSforeachtable @command1="print '?' dbcc checktable ('?')" Вы можете использовать до трех команд в этой хранимой процедуре, используя @command1, @command1 и @command3. |
Перевод: Александр Гладченко 2001г. |