![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
без sp_executeSQL не обойтись? [D7, MSSQL]
interbase © (2008-12-24 16:13:00)Всем доброго времени суток!
есть процедурка(MS SQL Server 2005):
CREATE PROCEDURE aaa(@a VARCHAR(1000))
AS
BEGIN
SELECT *
FROM table
WHERE id IN (@a)
END
вызов execute aaa '1,2,3,4'
так не работает... не ругается, но и не делает выборку. Без executeSQL никак?
Ega23 (2008-12-24 17:16:00) [1]
> ну, я имел в виду не работате так, как мне надо.
Вот негодяйка какая!
interbase (2008-12-24 17:08:00) [2]
> sniknik © (24.12.08 17:07) [28]
телепатор от рождения или от посещения данного форума?:)
sniknik (2008-12-24 17:07:00) [3]> так мне надо то из одной, то из другой - одной и той же процедурой
надо работать, но так хочется чуда... ;)
interbase (2008-12-24 17:07:00) [4]
> sniknik © (24.12.08 17:05) [26]
ну, я имел в виду не работате так, как мне надо.
sniknik (2008-12-24 17:05:00) [5]> не работает:(
вообщето работает, но только не так как тебе хочется
к примеру проверь (если есть база Northwind, нет сделай аналогично)
при коннекте к примеру к мастеру
EXECUTE ('USE Northwind SELECT * FROM Categories')
все работает
interbase (2008-12-24 17:05:00) [6]
> sniknik © (24.12.08 16:59) [22]
> бери...
> base.dbo.table , зачем же переходить то, а если она под
> другим сервером, то -> openrowset/opendadasource.
так мне надо то из одной, то из другой - одной и той же процедурой
interbase (2008-12-24 17:02:00) [7]
> Johnmen © (24.12.08 16:52) [18]
не работает:(
> Ega23 © (24.12.08 16:56) [20]
> Как-то - можно. DTS тебе в помощь.
что за зверь?
Johnmen (2008-12-24 17:02:00) [8]
> sniknik © (24.12.08 16:59) [22]
Да, я догадываюсь :)
sniknik (2008-12-24 16:59:00) [9]> EXECUTE ('USE '+@s)
не получится, т.к. действие перехода будет только для сессии "внутри" данного EXECUTE
> а данные брать из требуемой базы.
бери...
base.dbo.table , зачем же переходить то, а если она под другим сервером, то -> openrowset/opendadasource.
Медвежонок Пятачок (2008-12-24 16:56:00) [10]и что тебе даст юз?
следущая же строка после execute('use ... ') в которой ты обратишся к объекту в той бд просто не скомпилится.
Ega23 (2008-12-24 16:56:00) [11]
> Может ее(синхронизацию) автоматом можно как-то сделать?
Как-то - можно. DTS тебе в помощь.
interbase (2008-12-24 16:53:00) [12]
> Медвежонок Пятачок © (24.12.08 16:48) [17]
ага, ясно.
Просто есть несколько БД, идентичные по структуре, но с разными данными - почему так, вопрос не ко мне. Некоторую часть структуры можно было б вынести в отдельную БД, а данные брать из требуемой базы. Зело напрягает синхронизировать все в них:(.
Может ее(синхронизацию) автоматом можно как-то сделать?
Johnmen (2008-12-24 16:52:00) [13]
> interbase (24.12.08 16:46) [16]
EXECUTE ('USE '+@s)
Медвежонок Пятачок (2008-12-24 16:48:00) [14]в процедуре тебе сделать use один фик на дадут.
а на клиенте этого и не надо.
interbase (2008-12-24 16:46:00) [15]
> Johnmen © (24.12.08 16:40) [14]
> Johnmen © (24.12.08 16:43) [15]
ответь мне, о Вопрошающий и Надеющийся, на
> interbase (24.12.08 16:35) [11]
Johnmen (2008-12-24 16:43:00) [16]
> sniknik © (24.12.08 16:39) [13]
Остается надеяться, что не буде 4, 5, 6, 7
:)
Johnmen (2008-12-24 16:40:00) [17]
> sniknik © (24.12.08 16:36) [12]
id=7, @a='77,88'
?
sniknik (2008-12-24 16:39:00) [18]и кстати нужно две... обрамляющие, а то с одного конца тоже будут непонятности...
sniknik (2008-12-24 16:36:00) [19]> приклеивать слева справа загогулины.
уже есть, запятая
where charindex(cast(id as varchar)+',',@a) > 0
interbase (2008-12-24 16:35:00) [20]
> Медвежонок Пятачок © (24.12.08 16:30) [9]
а как насчет идеи для:
declare @s varchar
set @s = 'MySuperBase'
use @s
?
Очень надо!