#sql #sql-server
Вопрос:
У меня есть данные zip-кода, которые я хотел бы создать таблицу в основной базе данных и сделать доступными для всех моих баз данных, например:
MYSQLSERVER -> Databases -> System Databases -> Master -> Table -> Zipcode_data
и я хотел бы запросить его следующим образом
SELECT *
FROM master.dbo.zipcode_data
из любой из баз данных моих проектов, если это возможно, дайте другим базам данных разрешение просто запросить таблицу, созданную в мастере?
Комментарии:
1. Есть ли причина специально помещать это в главную базу данных, а не только в собственную базу данных пользователей, называемую чем-то вроде «shared_data»?
2. Не кладите свои вещи в Мастер, это плохая идея. Способ сделать то, что вы хотите выше, — это 1) Создать новую базу данных, скажем, под названием
[Common]
. Затем в базе данных проектов используйте синонимы для перенаправленияdbo.zipcode_data
ссылок из базы данных проектов в вашу[Common]
базу данных.3.Вообще говоря, размещение пользовательских объектов
master
-неправильный выбор. Да, вы можете поместить их туда, но это не значит, что вы должны это делать. Такжеdbo.master.zipcode_data
будет ссылаться на объект, вызываемыйzipcode_data
в схемеmaster
, в базе данных, называемойdbo
.4. Вы не должны связываться с системными базами данных, как
master
. Вы можете просто создать новую (пользовательскую) базу данных, содержащую объекты. Или заглянуть в схемы.5. Причина в том, что таблица zipcode_data не дублируется во всех базах данных моих проектов. Спасибо, ИМСоП.