How to check if database exist on Remote Server through SQL query

前端 未结 2 1216
野的像风
野的像风 2021-01-16 16:47

I have a table as following in SQL Server 2012.

|---------------------|------------------|------------------|
|      ClientName     |     servername   |Datab         


        
2条回答
  •  孤街浪徒
    2021-01-16 17:48

    So, I assume you already have all your server linked and you used an account, which can read the schema. Than script will be something like this:

    SELECT TOP 0 * INTO #tbl_Server_DBs
    FROM tbl_Server_DBs
    
    DECLARE ServerDBs CURSOR LOCAL STATIC FORWARD_ONLY 
    FOR SELECT ClientName, servername, Databasename FROM tbl_Server_DBs
    
    DECLARE @ClientName NVARCHAR(128), @servername NVARCHAR(128), @Databasename NVARCHAR(128);
    DECLARE @s NVARCHAR(4000)
    
    OPEN ServerDBs
    FETCH NEXT FROM ServerDBs 
    INTO @ClientName, @servername, @Databasename
    
    WHILE (@@fetch_status <> -1)
    BEGIN
        SET @s = N'SELECT ''' + @ClientName + N''', ''' + @servername + N''', name 
            FROM [' + @servername + N'].sys.databases
            WHERE name = ''' + @Databasename + N''';';
    
        PRINT @s
        INSERT INTO #tbl_Server_DBs (ClientName, servername, Databasename)
        EXEC(@s);
    
        FETCH NEXT FROM ServerDBs 
        INTO @ClientName, @servername, @Databasename
    END
    
    CLOSE ServerDBs
    DEALLOCATE ServerDBs
    
    SELECT * FROM #tbl_Server_DBs;
    

提交回复
热议问题