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

     

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

     

    机会是凭自己争取的,命运是靠自己把握的,生命是自己的画,为何要依靠别人着色?!
  • 相关阅读:
    VuGen错误处理函数
    LR的日志
    创建性能测试脚本时如何选择HTML模式和URL模式
    Java变量
    查找&排序
    selenium执行JS
    Python中 is 和 == 的区别
    Python中 and or的计算规则
    selenium使用location定位元素坐标偏差
    错误:Could not find an available JavaScript runtime
  • 原文地址:https://www.cnblogs.com/GeorgeYao/p/4042277.html
Copyright © 2011-2022 走看看