用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

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

用SQL脚本移除视图中存在的机器名的更多相关文章

  1. 通过SQL脚本来查询SQLServer 中主外键关系

    在SQLServer中主外键是什么,以及主外键如何创建,在这里就不说了,不懂的可以点击这里,这篇文章也是博客园的博友写的,我觉得总结的很好: 此篇文章主要介绍通过SQL脚本来查看Sqlserver中主 ...

  2. sql脚本来获取数据库中的所有表结构了

    sql脚本来获取数据库中的所有表结构了,代码如下: use AdventureWorks2008 go SELECT (case when a.colorder=1 then d.name else ...

  3. 如何应用AutoIt,把局域网中所有的机器名展示在一个combox中?

    有时候,我们会遇到以下情况: 你想与局域网中的某台机器建立连接,你就需要输入对方的机器名. 现在我比较懒,我不想输入对方的机器名,或者对方的机器名很难记住,那怎么办呢? 那就做一个combox在页面上 ...

  4. SQL脚本IN在EF中的应用

    C#查询条件中存在in,为了避免拼脚本,参数化查询数据库,提高安全性,规避脚本注入.网上找了好多,最后发现 SqlParameter 是无法实现in的操作,所以只能变相来实现,结果还是不错的,性能上各 ...

  5. mssql sqlserver 使用sql脚本检测数据表中一列数据是否连续的方法分享

    原文地址:http://www.maomao365.com/?p=7335 摘要:    数据表中,有一列是自动流水号,由于各种操作异常原因(或者插入失败),此列数据会变的不连续,下文将讲述使用sql ...

  6. 最近遇到的几个问题,关于Unity脚本在Inspector视图中前面没有勾选框的问题

    1.为什么在Inspector视图中有的脚本前面有勾选框,有的脚本前面没有? 当我想要禁用一个脚本时,发现脚本前面没有勾选框,有的却有. 解决办法:在脚本中添加start方法,然后就有勾选框了. 原因 ...

  7. FineUI之使用SQL脚本从数据库表中生成对应的输入控件

    在WEB开发时.常常须要根据数据库表中的字段建立对应的输入控件,来获取输入的数据.每次都须要按字段来敲,显然太低效.并且easy出错.这里提供一个SQL脚本生成对应输入控件的方法. USE DBDem ...

  8. 查找SQL数据表或视图中的字段属性信息

    一.只支持表,非常牛逼的 SELECT a.name,(case when (SELECT count(*) FROM sysobjects WHERE (name in (SELECT name F ...

  9. PowerDesigner生成sql脚本时去掉双引号并把字段名设为大写

    Database菜单—Edit Current RDBMS 找到Script---sql—Format--- CaseSensitivityUsingQuote,把它设置为NO 这样再用sql pre ...

随机推荐

  1. Median of Two Sorted 求两个有序数组的中位数

    中位数是把一个数的集合划分为两部分,每部分包含的数字个数相同,并且一个集合中的元素均大于另一个集合中的元素. 因此,我们考虑在一个任意的位置,将数组A划分成两部分.i表示划分数组A的位置,如果数组A包 ...

  2. N1必备外来语

    201412: キャリア: ノルマ:(normal)定额,劳动基本定额. チーフ: コスト: バンド:[英] band;皮带,腰带:吹奏乐团,轻音乐乐团(演奏者の一団.楽団.楽隊):营居群 [2014 ...

  3. hdu 5606 tree(并查集)

    Problem Description There is a tree(the tree is a connected graph which contains n points and n−1 ed ...

  4. cocos2d js 怎样动态载入外部图片

    官网没有详细样例,仅仅有看api,研究成果例如以下 var that = this; var url = "http://xxxxxx"; cc.loader.loadImg(ur ...

  5. Tsinghua dsa pa2

    第一题,列车调度(train) 在这个题目中,模拟压栈出栈,同时判断调度方案是否可行. #include <cstdio> #include <cstring> #define ...

  6. C#中byte[] 与指针

    本文假定读者熟悉byte[].指针. C#是类型安全的,默认是不允许使用指针,但是针对C\C++或者其他语言的程序员(delphi)转为使用C#的的工作人员,不适用指针觉得很别扭.下面介绍一下基础的指 ...

  7. 超级强大的SVG SMIL animation动画详解

    本文花费精力惊人,具有先驱前瞻性,转载规则以及申明见文末,当心予以追究.本文地址:http://www.zhangxinxu.com/wordpress/?p=4333 //zxx: 本文的SVG在有 ...

  8. input的样式简介

    <input type="text" autocomplete="off" placeholder="" x-webkit-speec ...

  9. 阻止JS事件冒泡传递(cancelBubble 、stopPropagation)

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx. ...

  10. (二)Activity启动模式

    一.标准模式(standrard) 1.当新建一个Activity时,默认情况下就是标准模式,也可以通过AndroidManifest文件显示指定其launchMode为standard <?x ...