خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


نمایش لیست همه Linked Server در SQL Server

نمایش لیست همه Linked Server در SQL Server
در این پست با استفاده از دو روش کلیه linked servers ها در SQL Server را لیست خواهیم کرد. در روش اول با استفاده از stored procedure سیستمی sp_linkedservers اقدام به اینکار خواهیم کرد و در روش دوم با استفاده از View سیستمی sys.servers استفاده می کنیم.

نرم افزار سامانه مودیان راهکار



The sp_linkedservers Stored Procedure

stored procedure سیستمی sp_linkedservers به طور خاص برای بازگرداندن کلیه linked server های تعریف شده لوکال مورد استفاده است.

EXEC sp_linkedservers;

+--------------+--------------------+---------------+------------------+----------------------+----------------+-----------+
| SRV_NAME | SRV_PROVIDERNAME | SRV_PRODUCT | SRV_DATASOURCE | SRV_PROVIDERSTRING | SRV_LOCATION | SRV_CAT |
|--------------+--------------------+---------------+------------------+----------------------+----------------+-----------|
| c1b060f68fcb | SQLNCLI | SQL Server | c1b060f68fcb | NULL | NULL | NULL |
| Homer | SQLNCLI | | 172.17.0.2,1433 | NULL | NULL | NULL |
+--------------+--------------------+---------------+------------------+----------------------+----------------+-----------+

در خروجی این دستور، دو رکورد وجود دارد که اولی نام سرور لوکال و دومی linked server در همین سرور لوکال با نام Homer است.

The sys.servers System View

View سیستمی sys.servers حاوی یک ردیف به ازای هر linked server ثبت شده و یک ردیف برای سرور لوکال است که 0_ server_id دارد. در خروجی این View، ردیف های بسیاری وجود دارد


SELECT *
FROM sys.servers;

فقط برای مشاهده بهتر، خروجی را به این صورت قرار داده ایم:

-[ RECORD 1 ]-------------------------
server_id | 0
name | c1b060f68fcb
product | SQL Server
provider | SQLNCLI
data_source | c1b060f68fcb
location | NULL
provider_string | NULL
catalog | NULL
connect_timeout | 0
query_timeout | 0
is_linked | 0
is_remote_login_enabled | 1
is_rpc_out_enabled | 1
is_data_access_enabled | 0
is_collation_compatible | 0
uses_remote_collation | 1
collation_name | NULL
lazy_schema_validation | 0
is_system | 0
is_publisher | 0
is_subscriber | 0
is_distributor | 0
is_nonsql_subscriber | 0
is_remote_proc_transaction_promotion_enabled | 0
modify_date | 2019-09-27 00:30:06.820
is_rda_server | 0
-[ RECORD 2 ]-------------------------
server_id | 1
name | Homer
product |
provider | SQLNCLI
data_source | 172.17.0.2,1433
location | NULL
provider_string | NULL
catalog | NULL
connect_timeout | 0
query_timeout | 0
is_linked | 1
is_remote_login_enabled | 0
is_rpc_out_enabled | 0
is_data_access_enabled | 1
is_collation_compatible | 0
uses_remote_collation | 1
collation_name | NULL
lazy_schema_validation | 0
is_system | 0
is_publisher | 0
is_subscriber | 0
is_distributor | 0
is_nonsql_subscriber | 0
is_remote_proc_transaction_promotion_enabled | 1
modify_date | 2019-09-29 10:31:36.570
is_rda_server | 0

شما در دستور Select، فقط ستون های مورد نظرتان را می توانید قید کنید:

SELECT
name,
provider,
data_source
FROM sys.servers;

+--------------+------------+-----------------+
| name | provider | data_source |
|--------------+------------+-----------------|
| c1b060f68fcb | SQLNCLI | c1b060f68fcb |
| Homer | SQLNCLI | 172.17.0.2,1433 |
+--------------+------------+-----------------+

اگر نمی خواهید که سرور لوکال در خروجی دستور نمایش داده شود، شرط WHERE is_linked = 1 را به کوئری اضافه کنید:

SELECT
name,
provider,
data_source
FROM sys.servers
WHERE is_linked = 1;

+--------+------------+-----------------+
| name | provider | data_source |
|--------+------------+-----------------|
| Homer | SQLNCLI | 172.17.0.2,1433 |
+--------+------------+-----------------+


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز