Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не устанавливается текущая база в скрипте / 7 сообщений из 7, страница 1 из 1
17.12.2018, 15:29
    #39749005
leonix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не устанавливается текущая база в скрипте
Скрипт должен перебирать базы, устанавливать текущую и далее делать некие манипуляции с текущей базой.
Базы перебираю но не отрабатывает установка текущей базы

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare @int int
declare @kolbase int
declare @basename varchar(100)

set @int=6 --начальный номер баз
set @kolbase=6 --количество баз от 1 до @int включительно
while @int <=@kolbase 
begin
set @basename=N'dev'+cast(@int as varchar)

exec('use '+@basename);
print db_name(); --здесь всё равно другая база

set @int = @int+1
end
...
Рейтинг: 0 / 0
17.12.2018, 15:32
    #39749006
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не устанавливается текущая база в скрипте
По сабжу:
Код: sql
1.
2.
3.
exec('use '+qoutename(@basename) + ';'
+ 'print db_name();'
);



Вообще, все, что вы написали, реализуется одной строкой:
Код: sql
1.
exec sp_msforeachdb 'if db_id() > 6 print db_name()'
...
Рейтинг: 0 / 0
17.12.2018, 15:37
    #39749008
leonix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не устанавливается текущая база в скрипте
Гавриленко Сергей Алексеевич,
мне же не просто надо вывести имена баз. там дальше будет куча когда для обработки баз.
Т.е. мне нужно установить текущую базу и дальше с ней работать.
А у меня после
exec('use '+@basename);
другая база (tempdb она установлена текущей в ssms)
...
Рейтинг: 0 / 0
17.12.2018, 15:46
    #39749014
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не устанавливается текущая база в скрипте
И только из-за того, что у вас куча кода, должен измениться скоуп действия команды use?
...
Рейтинг: 0 / 0
17.12.2018, 15:46
    #39749015
leonix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не устанавливается текущая база в скрипте
Допуская что мой год вообще негодный.
Подскажите как перебрать несколько БД и с ними выполнить некие манипуляции.
...
Рейтинг: 0 / 0
17.12.2018, 15:48
    #39749016
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не устанавливается текущая база в скрипте
leonixДопуская что мой год вообще негодный.
Подскажите как перебрать несколько БД и с ними выполнить некие манипуляции.

Код: sql
1.
2.
3.
4.
5.
exec sp_msforeachdb 'if db_id() > 6 begin
  <некие манипуляции>
  <и еще некие манипуляции>
  <ну вы поняли>
end'
...
Рейтинг: 0 / 0
17.12.2018, 16:25
    #39749035
leonix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не устанавливается текущая база в скрипте
Гавриленко Сергей АлексеевичПо сабжу:
Код: sql
1.
2.
3.
exec('use '+qoutename(@basename) + ';'
+ 'print db_name();'
);



Вообще, все, что вы написали, реализуется одной строкой:
Код: sql
1.
exec sp_msforeachdb 'if db_id() > 6 print db_name()'



Спасибо! Попробую так сделать.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не устанавливается текущая база в скрипте / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]