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

Откуда: Кострома
Сообщений: 158
Собственно, вопрос:

нужно запустить ddl скрипт на linked-сервере для создания определенной таблички с определенной структурой, имя которой зависит от параметра - например, id пользователя, который зарегестрировался - проблема в том, что имя linked-сервера тоже заранее неизвестно, т.е. написать крипт и разместить его на самом linked-сервере я не могу, но вместо этого я могу писать скрипты в той базе данных, linked-сервер которой и имя которой будет видно во всех остальных в последующем подключаемых базах...

Есть ли какое то решение для выполнения такой задачи?

щас пока делаю таким образом:

if (dbo.support_IfTableExists(@TableName) = 0)
				begin
						set @sql_script = 
						'	declare @sql_script nvarchar(4000)
							set @sql_script = 	''
							CREATE TABLE [' + @TableName + '] (
									[ID] [bigint]  NOT NULL ,
									[UserID] [int] NOT NULL ,
.......
.......									[HitGuidNewVersion] [varchar] (32)   NULL 
								) ON [PRIMARY]	
												''
							execute ' + @FullDatabaseName + '.sp_executesql @sql_script			
						'
						execute sp_executesql @sql_script
				end 

очень конечно не нравится такой вариант со свложенным вызовом sp_executesql, но пока даже и придумать ничего не могу :(/
@FullDatabaseName - в данном случае это имя базы (можно вместе с квалификатором linked-сервера) - ничего умнее пока не придумал, вариант с OpenQuery использовать не могу в виду его ограничения в использовании переменных...

чтобы это дало: вызвав такую процедуру из единого места и просто указав @FullDatabaseName, я бы создал все необходимые таблицы, сосредоточив всю работу по дальнеушему саппорту и поддержку структур в одном месте без дальнейшей синхронизации.

спасибо.


С уважением
duШes
....return ThisForm.exGrid1.p_oColumns("COLUMN1").M_AddHeader("header4",4)
2 мар 06, 11:45    [2407731]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить