SQL Server: как использовать одну и ту же процедуру в разных экземплярах? - PullRequest
0 голосов
/ 07 сентября 2010

У меня есть хранимая процедура в тестовом экземпляре сервера SQL (с именем sql2008test \ sql2008_test), и она находится в одной базе данных. Я хотел бы использовать эту процедуру также в производственном экземпляре (с именем sql2008prod \ sql2008_prod). Должен ли я скопировать эту процедуру в этот экземпляр продукта или я могу каким-то образом изменить свою процедуру для запроса данных из экземпляра продукта? Процедура показана ниже.

CREATE PROCEDURE dbo.PROC_getDbInfo
AS
    SET NOCOUNT ON

    TRUNCATE TABLE dbo.dbinfo
    EXECUTE sp_msforeachdb 'insert into dbo.dbinfo 
            select  ''?'' as name,
                    type_desc, 
                    physical_name, 
                    state_desc, 
                    size * 1.0/128 as size_in_mb, 
                    max_size, 
                    growth * 1.0/128 as growth_in_mb, 
                    is_percent_growth,
                    is_read_only    
    from [?].sys.database_files'


    SELECT  @@SERVERNAME as instance_name,
        f.name,
        d.create_date,
        d.compatibility_level,
        d.collation_name,
        d.user_access_desc,
        d.state_desc,
        d.recovery_model_desc,
        d.page_verify_option_desc,
        d.log_reuse_wait_desc,
        f.type_desc, 
        f.physical_name, 
        f.state_desc, 
        f.size_in_mb, 
        f.max_size, 
        f.growth_in_mb, 
        f.is_percent_growth,
        f.is_read_only  
    FROM dbo.dbinfo AS f INNER JOIN
            sys.databases AS d
                ON f.name = d.name
    ORDER BY f.name
GO

Ответы [ 3 ]

1 голос
/ 07 сентября 2010

Запустите сценарий создания на своем производственном экземпляре (конечно, проходя все процессы выпуска, которые у вас есть).Вы можете настроить связанные серверы, если у вас есть доступ к вашему производственному серверу из тестового экземпляра, но я бы не пошел по этому пути без веской причины.

Кстати, у вас все еще есть дополнительные операторы GO в этомскрипт, означающий, что sproc будет создан ТОЛЬКО с SET NOCOUNT ON и ничего не будет делать.

0 голосов
/ 07 сентября 2010

Скопируйте вашу процедуру в Production db.

0 голосов
/ 07 сентября 2010

Используйте Объекты сервера> Связанные серверы, чтобы вы могли выбирать между различными экземплярами.

...