Published on

September 22, 2007

Исследование связанных серверов в SQL Server

Итак, вы добавили связанный сервер и вам нужна информация о нем. Должен быть более простой способ найти информацию о связанном сервере, не прибегая к физическому посещению серверной комнаты. В этой статье мы рассмотрим несколько полезных хранимых процедур 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 возвращает индексы на таблице.

Используя эти хранимые процедуры, вы можете легко получить информацию о своих связанных серверах без необходимости физического доступа к серверной комнате или использования громоздких инструментов.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.