zoukankan      html  css  js  c++  java
  • 用SQL脚本移除视图中存在的机器名

    用SQL脚本移除视图中存在的机器名

    例子: msccdr.cdr.DimRMAReturnMethod

    CREATE VIEW CDR.DimRMAReturnMethod ( ReturnMethodId,srcReturnMethodCode,ReturnMethodName,IsDeleted  ,TrackingID,ETLInsertDtTm ,ETLUpdateDtTm)

    AS SELECT t.ReturnMethodId,t.srcReturnMethodCode,t.ReturnMethodName,t.IsDeleted,t.TrackingID,t.ETLInsertDtTm,t.ETLUpdateDtTm

    FROM [MSCBISQLX01].[CDR].dbo.DimRMAReturnMethod t WITH (NOLOCK)

    处理方法

    *.查询出视图中存在机器名的视图信息

    USE Database

    GO

    SELECT

    b.name,

    c.referenced_server_name,

    c.referenced_database_name,

    c.referenced_schema_name,

    a.definition,

    b.create_date,

    b.modify_date

    FROM sys.sql_modules AS a

    JOIN

    sys.objects AS b

    ON a.object_id = b.object_id

    JOIN

    sys.sql_expression_dependencies AS c

    ON b.object_id = c.referencing_id

    WHERE b.type = 'V'

    AND c.referenced_server_name IS NOT NULL

     

    *.修改视图中存在机器名的视图

     SET NOCOUNT ON;

    DECLARE @definition VARCHAR(MAX)

    DECLARE @ServerN VARCHAR(50)

    DECLARE View_Cursor CURSOR SCROLL

    FOR (

    SELECT

    c.referenced_server_name,

    a.definition

    FROM sys.sql_modules AS a

    JOIN

    sys.objects AS b

    ON a.object_id = b.object_id

    JOIN

    sys.sql_expression_dependencies AS c

    ON b.object_id = c.referencing_id

    WHERE b.type = 'V'

    AND c.referenced_server_name IS NOT NULL

    )

    OPEN View_Cursor;

    FETCH NEXT FROM View_Cursor INTO @ServerN,@definition;

    WHILE @@fetch_status = 0

    BEGIN

    SELECT @definition = REPLACE (@definition,'CREATE VIEW','ALTER VIEW')

    SELECT @definition = REPLACE (@definition,'['+@ServerN+']'+'.','')

    --print(@definition);

    exec(@definition);

    FETCH NEXT FROM View_Cursor INTO @ServerN,@definition;

    END

    CLOSE View_Cursor;

    DEALLOCATE View_Cursor;

    GO

     

     以上处理方法仅供参考,如有处理不完善的地方;请大家指出共同学习。

     

    机会是凭自己争取的,命运是靠自己把握的,生命是自己的画,为何要依靠别人着色?!
  • 相关阅读:
    Tcp抓包以及Tcp状态
    Wireshark抓包使用指南
    服务端tcp syn无响应,无回复
    升级openssh
    平滑升级Nginx
    Memcached 未授权访问漏洞修复
    服务端高并发分布式架构演进之路
    es索引查询与删除
    申请elasticsearch中x-pack插件许可证及授权
    独立安装ab压力测试工具及测试nginx性能
  • 原文地址:https://www.cnblogs.com/GeorgeYao/p/4042277.html
Copyright © 2011-2022 走看看