Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Переменная для use  [new]
igor_vk
Member

Откуда:
Сообщений: 12
В запросе необходимо обращать к разным базам.
Подскажите, пожалуйста, как можно передать переменную для команды use.

declare @pos_base varcher(20)
use @pos_base

ругается на вторую строку.
15 дек 10, 12:40    [9940985]     Ответить | Цитировать Сообщить модератору
 Re: Переменная для use  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
igor_vk
В запросе необходимо обращать к разным базам.
Подскажите, пожалуйста, как можно передать переменную для команды use.

declare @pos_base varcher(20)
use @pos_base

ругается на вторую строку.
Только через динамический запрос.
15 дек 10, 12:49    [9941083]     Ответить | Цитировать Сообщить модератору
 Re: Переменная для use  [new]
Glory
Member

Откуда:
Сообщений: 104751
igor_vk
В запросе необходимо обращать к разным базам.
Подскажите, пожалуйста, как можно передать переменную для команды use.

declare @pos_base varcher(20)
use @pos_base

ругается на вторую строку.

По-моему, вам надо пересмотреть выбранное вами решение задачи
То, с чем вы сейчас столкнулись, пока самая простая проблема
15 дек 10, 12:52    [9941115]     Ответить | Цитировать Сообщить модератору
 Re: Переменная для use  [new]
igor_vk
Member

Откуда:
Сообщений: 12
Спасибо, проблема осталась только в этом. Запрос готов и работает, если руками прописывать
use имя базы.
15 дек 10, 13:07    [9941266]     Ответить | Цитировать Сообщить модератору
 Re: Переменная для use  [new]
_djХомяГ
Guest
Ну дело ваше (я про динамику)
declare 
@sql varchar(1000),
@pos_base varchar(100)

set @pos_base='master'
set @sql = 'use ' + @pos_base
set @sql = @sql + '
select * from spt_values'

------печать строки 
select @sql
-----выполнение
exec(@sql)
15 дек 10, 13:13    [9941323]     Ответить | Цитировать Сообщить модератору
 Re: Переменная для use  [new]
igor_vk
Member

Откуда:
Сообщений: 12
Похоже проще динамический, запрос большой внутри много переменных и апострофов.
Спасибо.
15 дек 10, 13:24    [9941449]     Ответить | Цитировать Сообщить модератору
 Re: Переменная для use  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
igor_vk,

читайте совет Glory, пока не поздно
15 дек 10, 13:32    [9941550]     Ответить | Цитировать Сообщить модератору
 Re: Переменная для use  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
попробуйте так
declare @pos_base varchar(20)
--use @pos_base

set @pos_base = 'tempdb'
if @pos_base = 'test'
	use test
if @pos_base = 'tempdb'
	use tempdb

select db_name()
16 дек 10, 12:25    [9947965]     Ответить | Цитировать Сообщить модератору
 Re: Переменная для use  [new]
Crimean
Member

Откуда:
Сообщений: 13147
а почему забываем про RPC?

declare @procname nvarchar(max)
set @procname = 'tempdb.' + 'dbo.sp_executesql'

declare @cmd nvarchar(max)
set @cmd = 'select db_name()'

select db_name()
exec @procname @cmd
20 дек 10, 21:14    [9969550]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Переменная для use  [new]
`dmitry
Member

Откуда: Россия!
Сообщений: 64
Glory
igor_vk
В запросе необходимо обращать к разным базам.
Подскажите, пожалуйста, как можно передать переменную для команды use.

declare @pos_base varcher(20)
use @pos_base

ругается на вторую строку.

По-моему, вам надо пересмотреть выбранное вами решение задачи
То, с чем вы сейчас столкнулись, пока самая простая проблема


Возобновлю данный вопрос. А что-бы пересмотреть аналогичную ситуацию, то что надо сделать? В какую сторону копать? Можно перебрать базы без динамических запросов?
2 окт 13, 15:05    [14912727]     Ответить | Цитировать Сообщить модератору
 Re: Переменная для use  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
`dmitry
Можно перебрать базы без динамических запросов?


Вы их с какой целью планируете "перебирать"?
2 окт 13, 15:12    [14912794]     Ответить | Цитировать Сообщить модератору
 Re: Переменная для use  [new]
Glory
Member

Откуда:
Сообщений: 104751
`dmitry
Можно перебрать базы без динамических запросов?

Неизвестное число - невозможно

`dmitry
В какую сторону копать?

В сторону сведения всех баз в одну
2 окт 13, 15:13    [14912804]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить