Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 如何确定链接服务器上是否存在数据库?_Sql Server 2005_Sql Server 2008 - Fatal编程技术网

Sql server 2005 如何确定链接服务器上是否存在数据库?

Sql server 2005 如何确定链接服务器上是否存在数据库?,sql-server-2005,sql-server-2008,Sql Server 2005,Sql Server 2008,我知道你可以这样做: 从sys.databases中选择count(*)作为数量,其中的名称类似于“%mydatabase%” 但是你怎么能做这样的事情: 从linkedServer.sys.databases中选择count(*)作为数量,其中的名称类似于“%mydatabases%” 我想我可以在链接服务器上放置一个存储过程并执行第一次选择,但是有没有办法查询链接服务器上有哪些数据库?假设您的链接服务器登录名对master.sys.databases表具有读取权限,您可以使用以下方法: 从l

我知道你可以这样做:

从sys.databases中选择count(*)作为数量,其中的名称类似于“%mydatabase%”

但是你怎么能做这样的事情:

从linkedServer.sys.databases中选择count(*)作为数量,其中的名称类似于“%mydatabases%”


我想我可以在链接服务器上放置一个存储过程并执行第一次选择,但是有没有办法查询链接服务器上有哪些数据库?

假设您的链接服务器登录名对master.sys.databases表具有读取权限,您可以使用以下方法:

从linkedserver.master.sys.databases中选择*


过去,我在SQL Server 2008 R2上使用过这个查询。

下面列出了一个指向光标的链接,该光标可以工作:


但是,查询需要一些修改才能包含所有函数和触发器。

我认为这只是语法问题,无法使用,请尝试在数据库名称周围使用单引号,而不是%%:

SELECT COUNT(*) as Qty FROM LinkedServer.master.sys.databases where name like 'mydatabase'
此处已回答了选择链接服务器的正确格式:


我不确定远程
主数据库是否总是通过链接服务器可用。
我将使用以下TRY-CATCH探测器

BEGIN TRY
    EXEC ('SELECT TOP 1  1 FROM MyLinkedServer.MyTestDb.INFORMATION_SCHEMA.TABLES')
END TRY
BEGIN CATCH
    PRINT 'No MyTestDB on MyLinkedServer'
END CATCH

你能解决你的问题吗?