• I am devising a way to help you out in looping, as I know the tidious job in doing recursive work for a volume as big as 100 servers.....

    As of now, the following process will let you save your outputs to a centrally located excel file. This will do away with the copy and paste stuff each time you run the script for a server.

    First of all share a folder and create a blank excel workbook with a worksheet named Result. Name the columns SERVER, PRODUCTVERSION, PRODUCTLEVEL, EDITION in the worksheet.

    That's all....

    as before run the following script for each of the servers you want to drill in...changing just the servername SON1286

    :setvar defaultserver SON1286

    :connect $(defaultserver)

    USE [master]

    GO

    IF NOT EXISTS (SELECT srv.name

    FROM sys.servers srv

    WHERE srv.server_id != 0

    AND srv.name = N'ExcelSource')

    EXEC sp_addlinkedserver 'ExcelSource',

    'Jet 4.0',

    'Microsoft.Jet.OLEDB.4.0',

    '\\son1286\Share\Test.xls',

    NULL,

    'Excel 5.0'

    DECLARE @TSQLSTMTVARCHAR(4000),

    @SERVERVARCHAR(100),

    @PRODUCTVERSIONVARCHAR(150),

    @PRODUCTLEVELVARCHAR(150),

    @EDITIONVARCHAR(150)

    SELECT @SERVER=CONVERT(VARCHAR,@@SERVERNAME),

    @PRODUCTVERSION=CONVERT(VARCHAR,SERVERPROPERTY('PRODUCTVERSION')),

    @PRODUCTLEVEL=CONVERT(VARCHAR,SERVERPROPERTY('PRODUCTLEVEL')),

    @EDITION=CONVERT(VARCHAR,SERVERPROPERTY('EDITION'))

    SET @TSQLSTMT = 'Insert ExcelSource...[Result$]

    (SERVER,

    PRODUCTVERSION,

    PRODUCTLEVEL,

    EDITION

    )

    SELECT '''+@SERVER+''',

    '''+@PRODUCTVERSION+''',

    '''+@PRODUCTLEVEL+''',

    '''+@EDITION+''''

    EXEC(@TSQLSTMT)

    Note: You must not have any linked server already on your servers named ExcelSource. You can choose a unique name if required.

    Chandrachurh Ghosh
    DBA – MS SQL Server
    Ericsson India Global Services Limited
    Quality is not an act, it is a habit.