Есть ли способ сделать таблицу, созданную в мастере, доступной для всех пользователей и баз данных?

#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 не дублируется во всех базах данных моих проектов. Спасибо, ИМСоП.