Итак, вы добавили связанный сервер и вам нужна информация о нем. Должен быть более простой способ найти информацию о связанном сервере, не прибегая к физическому посещению серверной комнаты. В этой статье мы рассмотрим несколько полезных хранимых процедур T-SQL, которые могут предоставить важную информацию о вашем связанном сервере.
sp_linkedservers
Самая часто используемая мной хранимая процедура – это sp_linkedservers. Эта процедура показывает, сколько связанных серверов настроено и предоставляет информацию о них. Она особенно удобна, если у вас есть необычные имена для связанных серверов. Если вы не настроили связанный сервер, вы должны увидеть только один результат, который представляет информацию о локальном сервере.
Пример:
EXEC sp_linkedserversЭто даст вам список связанных серверов и их информацию.
sp_catalogs
Вы также можете запросить список баз данных, которые являются вашими связанными серверами, используя хранимую процедуру sp_catalogs. Эта процедура принимает переменную @server_name, которая является именем связанного сервера, о котором вы запрашиваете информацию.
Пример:
EXEC sp_catalogs @server_name = 'имясвязанногосервера'Это предоставит вам список баз данных или каталогов на связанном сервере.
sp_tables_ex
Хранимая процедура sp_tables_ex позволяет получить список таблиц на любом заданном сервере, в любой заданной базе данных. Единственный обязательный параметр – это @table_server, который является именем связанного сервера.
Пример:
EXEC sp_tables_ex @table_server = 'имясвязанногосервера'Это вернет огромный набор результатов таблиц. Чтобы сузить результаты, вы можете использовать следующие необязательные параметры:
@table_catalog: Изменяет каталог по умолчанию для вашего запроса.@table_schema: Сужает владельцев объектов, о которых вы хотите запросить.@table_name: Найти информацию о конкретной таблице.@table_type: Сузьте ваш запрос до определенного типа таблицы, такого как TABLE, SYSTEM TABLE или VIEW.
sp_columns_ex
Хранимая процедура sp_columns_ex позволяет получить информацию о отдельных столбцах в таблице на связанном сервере.
Пример:
EXEC sp_columns_ex @table_server = 'имясвязанногосервера', @table_catalog = 'Northwind', @table_name = 'suppliers', @table_schema = 'dbo', @column_name = 'CompanyName'Это вернет большой набор результатов с метаданными о указанном столбце, включая имена столбцов, возможность содержать пустое значение, точность и масштаб, а также тип данных и длину.
sp_table_privileges_ex
Хранимая процедура sp_table_privileges_ex позволяет получить информацию о безопасности таблицы на связанном сервере. Это может быть полезно при диагностировании проблем с разрешениями.
Пример:
EXEC sp_table_privileges_ex @table_server = 'имясвязанногосервера', @table_catalog = 'Northwind', @table_name = 'Suppliers', @table_schema = 'dbo'Это вернет разрешения, установленные на уровне таблицы, включая предоставителя, получателя и привилегии.
Есть несколько других хранимых процедур, с помощью которых вы можете экспериментировать, чтобы получить метаданные о своих связанных серверах. Например, sp_primarykeys возвращает столбцы первичного ключа для таблицы, sp_foreignkeys возвращает зависимости, которые есть у таблицы, а sp_indexes возвращает индексы на таблице.
Используя эти хранимые процедуры, вы можете легко получить информацию о своих связанных серверах без необходимости физического доступа к серверной комнате или использования громоздких инструментов.