|
|
|
Работа с несколькими базами на sql сервере
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть три база на sql сервере. Одна из них основнаяЮ с котрй постоянно идет работа. Две из них по мере обращения к ним. Как мне лучше организовать работу. Использовать командную строку где указывать USE database или создать еще одно соединение по котрому у меня будет обращение к эти базам? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 16:47 |
|
||
|
Работа с несколькими базами на sql сервере
|
|||
|---|---|---|---|
|
#18+
Если базы данных логически находятся под управлением одного MS SQL сервера. Т.е. являются базами данных одного сервера, то в синтаксисе MS SQL обращение к таблицам имеет следующий синтаксис database.owner.object_name Имя_Базы_данных.Владелец.Имя_таблицы Если "Имя_Базы_данных" не указано, то предполагается, что речь идет о текущей базе данных Если "Владелец" не указан, то предполагается, что речь идет о текущем пользователе. Следовательно, в запросе просто пишется Код: plaintext 1. 2. 3. или, если опустить владельца и текущей базой данных является MyDataBase1, то Код: plaintext 1. 2. 3. Если базы данных принадлежат разным серверам. Разным MS SQL. То необходимо дать знать одному из этих серверов как подключится к другому. Это делается через Linked Server. Специальная служба MS SQL. Тогда обращение к таблице, находящейся на Linked-сервере примет вид linked_server.catalog.schema.object Имя_Linked_сервера.Каталог.Схема.Имя_таблицы Как правило, Linked-сервер подключают к одной базе, поэтому "Каталог" и "Схема" просто опускают и синтаксис запроса выглядит так: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 16:52 |
|
||
|
Работа с несколькими базами на sql сервере
|
|||
|---|---|---|---|
|
#18+
в основной сдейте вьюшки на таблицы дополнительных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 16:53 |
|
||
|
Работа с несколькими базами на sql сервере
|
|||
|---|---|---|---|
|
#18+
novaДобрый день! Есть три база на sql сервере. Одна из них основнаяЮ с котрй постоянно идет работа. Две из них по мере обращения к ним. Как мне лучше организовать работу. Использовать командную строку где указывать USE database или создать еще одно соединение по котрому у меня будет обращение к эти базам? Спасибо! Соединение создается с сервером, а не с базой данных. Если у вас все три база данных на одном сервере, то соединение требуется одно. Если в одном запросе вы работает с таблицам одной базы даных, то перед запросом достаточно использовать команду USE database, если в запросах вы хотите обратится к таблицам в разных базах данных, то используйте полное квалифицированное имя объекта, как показал ВладимирМ (сервер можно опустить - database.owner.object_name). Учтите, что логин, от имени которого вы подключились к серверу должен иметь соответствующие права во всех базах данных, реализованные через пользователей в базе данных, связанных с этим логином или через особые права за счет членства в ролях. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2007, 18:09 |
|
||
|
Работа с несколькими базами на sql сервере
|
|||
|---|---|---|---|
|
#18+
Делаете вью в основной БД Код: plaintext 1. дальше, достаточно select * from myView where .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2007, 09:31 |
|
||
|
Работа с несколькими базами на sql сервере
|
|||
|---|---|---|---|
|
#18+
alex11100дальше, достаточно Недостаточно. Логин, который отображается в пользователя первой базы данных, может не отображаться в пользователя во второй базе. Или иметь недостаточные права доступа к объектам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2007, 00:03 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34259394&tid=1590014]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 362ms |

| 0 / 0 |
