Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с несколькими базами на sql сервере / 6 сообщений из 6, страница 1 из 1
16.01.2007, 16:47
    #34259394
nova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с несколькими базами на sql сервере
Добрый день!
Есть три база на sql сервере. Одна из них основнаяЮ с котрй постоянно идет работа. Две из них по мере обращения к ним. Как мне лучше организовать работу. Использовать командную строку где указывать USE database или создать еще одно соединение по котрому у меня будет обращение к эти базам?
Спасибо!
...
Рейтинг: 0 / 0
16.01.2007, 16:52
    #34259416
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с несколькими базами на sql сервере
Если базы данных логически находятся под управлением одного MS SQL сервера. Т.е. являются базами данных одного сервера, то в синтаксисе MS SQL обращение к таблицам имеет следующий синтаксис

database.owner.object_name

Имя_Базы_данных.Владелец.Имя_таблицы

Если "Имя_Базы_данных" не указано, то предполагается, что речь идет о текущей базе данных
Если "Владелец" не указан, то предполагается, что речь идет о текущем пользователе.

Следовательно, в запросе просто пишется

Код: plaintext
1.
2.
3.
SELECT ...  
FROM MyDataBase1.dbo.MyTable1   
INNER JOIN MyDataBase2.dbo.MyTable2 ...

или, если опустить владельца и текущей базой данных является MyDataBase1, то

Код: plaintext
1.
2.
3.
SELECT ...  
FROM MyTable1   
INNER JOIN MyDataBase2..MyTable2 ...

Если базы данных принадлежат разным серверам. Разным MS SQL. То необходимо дать знать одному из этих серверов как подключится к другому. Это делается через Linked Server. Специальная служба MS SQL.

Тогда обращение к таблице, находящейся на Linked-сервере примет вид

linked_server.catalog.schema.object

Имя_Linked_сервера.Каталог.Схема.Имя_таблицы

Как правило, Linked-сервер подключают к одной базе, поэтому "Каталог" и "Схема" просто опускают и синтаксис запроса выглядит так:

Код: plaintext
1.
2.
3.
SELECT ...  
FROM MyTable1   
INNER JOIN MyLinkedServer...MyTable2 ...
...
Рейтинг: 0 / 0
16.01.2007, 16:53
    #34259421
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с несколькими базами на sql сервере
в основной сдейте вьюшки на таблицы дополнительных
...
Рейтинг: 0 / 0
16.01.2007, 18:09
    #34259678
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с несколькими базами на sql сервере
novaДобрый день!
Есть три база на sql сервере. Одна из них основнаяЮ с котрй постоянно идет работа. Две из них по мере обращения к ним. Как мне лучше организовать работу. Использовать командную строку где указывать USE database или создать еще одно соединение по котрому у меня будет обращение к эти базам?
Спасибо!
Соединение создается с сервером, а не с базой данных. Если у вас все три база данных на одном сервере, то соединение требуется одно. Если в одном запросе вы работает с таблицам одной базы даных, то перед запросом достаточно использовать команду USE database, если в запросах вы хотите обратится к таблицам в разных базах данных, то используйте полное квалифицированное имя объекта, как показал ВладимирМ (сервер можно опустить - database.owner.object_name).
Учтите, что логин, от имени которого вы подключились к серверу должен иметь соответствующие права во всех базах данных, реализованные через пользователей в базе данных, связанных с этим логином или через особые права за счет членства в ролях.
С уважением, Алексей.
...
Рейтинг: 0 / 0
17.01.2007, 09:31
    #34260511
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с несколькими базами на sql сервере
Делаете вью в основной БД
Код: plaintext
1.
CREATE VIEW dbo.myView AS SELECT * FROM OtherDB.dbo.myTable

дальше, достаточно
select * from myView
where ....
...
Рейтинг: 0 / 0
20.01.2007, 00:03
    #34269529
Baldoha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с несколькими базами на sql сервере
alex11100дальше, достаточно

Недостаточно. Логин, который отображается в пользователя первой базы данных, может не отображаться в пользователя во второй базе. Или иметь недостаточные права доступа к объектам.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с несколькими базами на sql сервере / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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