刷新SQL Server所有视图、函数、存储过程

更多
 
 

此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。

[SQL]代码

  1. --视图、存储过程、函数名称
  2. DECLARE @NAME NVARCHAR(255);
  3. --局部游标
  4. DECLARE @CUR CURSOR
  5. --自动修改未上状态为旷课
  6. SET @CUR=CURSOR SCROLL DYNAMIC FOR
  7. SELECT NAME FROM DBO.SYSOBJECTS
  8. WHERE NAME NOT IN ('SYSCONSTRAINTS','SYSSEGMENTS')
  9. AND
  10. (
  11. OBJECTPROPERTY(ID, N'IsView') = 1 --视图
  12. OR OBJECTPROPERTY(ID,N'IsProcedure') = 1 --存储过程
  13. OR OBJECTPROPERTY(ID,N'IsScalarFunction') = 1 --标量函数
  14. OR OBJECTPROPERTY(ID,N'IsTableFunction') = 1 --标题函数
  15. OR OBJECTPROPERTY(ID,N'IsInlineFunction') = 1 --内联函数
  16. );
  17.  
  18. OPEN @CUR;
  19. FETCH NEXT FROM @CUR INTO @NAME
  20.  
  21. WHILE (@@FETCH_STATUS=0)
  22. BEGIN
  23.  
  24. DECLARE @OldText NVARCHAR(MAX);
  25. DECLARE @NewText NVARCHAR(MAX);
  26.  
  27. --读取创建脚本,当脚本超长时分成多条记录时合并
  28. SELECT @OldText=@OldText + CHAR(10) + CHAR(13) + RTRIM(TEXT) FROM SYSCOMMENTS WHERE ID = OBJECT_ID(@NAME);
  29.  
  30. --将创建脚本替换为更新脚本
  31. SET @NewText=REPLACE(@OldText,N'CREATE VIEW',N'ALTER VIEW');
  32. SET @NewText=REPLACE(@NewText,N'CREATE PROCEDURE',N'ALTER PROCEDURE');
  33. SET @NewText=REPLACE(@NewText,N'CREATE FUNCTION',N'ALTER FUNCTION');
  34.  
  35. BEGIN TRY
  36. EXEC(@NewText);
  37. END TRY
  38. BEGIN CATCH
  39. PRINT N'---------------------------------------------------------------------------';
  40. PRINT @NAME + N' : ' + ERROR_MESSAGE();
  41. --PRINT @OldText;
  42. PRINT N'---------------------------------------------------------------------------';
  43. END CATCH
  44.  
  45. FETCH NEXT FROM @CUR INTO @NAME
  46.  
  47. END
  48.  
  49. CLOSE @CUR;
  50. DEALLOCATE @CUR;

SQL Server修改表结构后批量更新所有视图

  1. CREATE PROCEDURE RefreshAllView AS
  2. DECLARE MyCursor CURSOR
  3. FOR select Name from dbo.sysobjects where OBJECTPROPERTY(id, N'IsView') = 1 and (not name in ('sysconstraints','syssegments'))
  4.  
  5. DECLARE @name varchar(40)
  6. OPEN MyCursor
  7.  
  8. FETCH NEXT FROM MyCursor INTO @name
  9. WHILE (@@fetch_status <> -1)
  10. BEGIN
  11. IF (@@fetch_status <> -2)
  12. begin
  13. exec sp_refreshview @name
  14. end
  15. FETCH NEXT FROM MyCursor INTO @name
  16. END
  17.  
  18. CLOSE MyCursor
  19. DEALLOCATE MyCursor

SQL SERVER得到表、视图、存储过程、触发器、字段的信息

  1. select name from sysobjects where xtype='TR' --所有触发器
  2. select name from sysobjects where xtype='P' --所有存储过程
  3. select name from sysobjects where xtype='V' --所有视图
  4. select name from sysobjects where xtype='U' --所有表

SQL SERVER得到某个数据库下面所有表字段的相信信息或者某个表的相信信息

  1. SELECT
  2. 表名=case when a.colorder=1 then d.name else '' end,
  3. 表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
  4. 字段序号=a.colorder,
  5. 字段名=a.name,
  6. 标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
  7. 主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (
  8. SELECT name FROM sysindexes WHERE indid in(
  9. SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
  10. ))) then '√' else '' end,
  11. 类型=b.name,
  12. 占用字节数=a.length,
  13. 长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
  14. 小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
  15. 允许空=case when a.isnullable=1 then '√'else '' end,
  16. 默认值=isnull(e.text,''),
  17. 字段说明=isnull(g.[value],'')
  18. FROM syscolumns a
  19. left join systypes b on a.xusertype=b.xusertype
  20. inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
  21. left join syscomments e on a.cdefault=e.id
  22. left join sys.extended_properties g on a.id=g.major_id and a.colid=g.minor_id
  23. left join sys.extended_properties f on d.id=f.major_id and f.minor_id=0
  24. --where d.name='course' --如果只查询指定表,加上此条件
  25. order by a.id,a.colorder

获取指定SQLServer数据库所有表及视图的字段列表及类型、长度

  1. Select o.Name As ObjectsName , c.name As ColumnsName , t.name As ColumnsType , c.length As ColumnsLength
  2. From SysObjects As o , SysColumns As c , SysTypes As t
  3. Where o.type in ('u','v') And o.id = c.id And c.xtype = t.xtype
  4. Order By o.name , c.name , t.name , c.Length

刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO的更多相关文章

  1. 元数据管理器中存在错误。 实例化来自文件“\\?\C:\Program Files\Microsoft SQL Server\MSAS11.MSSQLSERVER\OLAP\Data\Tfs_Analysis.0.db\vDimTestCaseOverlay.874.dim.xml”的元数据对象时出错。

    一.发现问题 启动SQLSERVER的数据分析服务失败 查看系统日志错误如下: 双击错误后显示详细错误: 元数据管理器中存在错误. 实例化来自文件“\\?\C:\Program Files\Micro ...

  2. 从SQL Server数据库转到Oracle数据库的数据脚本处理

    在我们很多情况下的开发,为了方便或者通用性的考虑,都首先考虑SQL Server数据库进行开发,但有时候客户的生产环境是Oracle或者其他数据库,那么我们就需要把对应的数据结构和数据脚本转换为对应的 ...

  3. SQL Server 一列或多列重复数据的查询,删除

    业务需求 最近给公司做一个小工具,把某个数据库(数据源)的数据导进另一个数据(目标数据库).要求导入目标数据库的数据不能出现重复.但情况是数据源本身就有重复的数据.所以要先清除数据源数据. 于是就把关 ...

  4. SQL Server 一列或多列重复数据的查询,删除(转载)

    转载来源:https://www.cnblogs.com/sunxi/p/4572332.html 业务需求 最近给公司做一个小工具,把某个数据库(数据源)的数据导进另一个数据(目标数据库).要求导入 ...

  5. sql server 2008怎样导入mdf,ldf文件,怎样解决导入mdf,ldf文件时出现附加数据库错误的问题

    废话不多说,直入主题吧. 1:打开sql server 2008,右键数据库-->附加 2:这时出现这个界面点击添加 3:打开数据库实例的安装目录,打开DATA文件夹;(如我的实例目录地址为:D ...

  6. sql server 将某一列的值拼成一个字符串 赋值到一个字段内

    DECLARE @refCodeitems VARCHAR(800),   SELECT @refCodeitems=ISNULL(@refCodeitems,'')+refCodeitem +'/' ...

  7. SQL Server 2008 R2——使用数字辅助表(master..spt_values)实现用计数字段对记录进行重复显示

    =================================版权声明================================= 版权声明:原创文章 谢绝转载  请通过右侧公告中的“联系邮 ...

  8. SQL Server 2008 R2 制作数据库结构和数据脚本

    数据库中包含众多表和数据,有时候需要创建脚本将表结构和数据一起导出 具体方法如下: 1.右键选择数据库,选择“任务”--->“生成脚本” 2.根据需求,选择制作脚本的对象,一般情况选择“表” 3 ...

  9. SQL Server 通过一个表和另一个表联合 批量更新这个表的字段

    UPDATE OutPzPersonSet SET cPerson = a.AAA --SELECT * FROM OutPzPersonSet d INNER JOIN AAAA a ON d.cz ...

随机推荐

  1. 实验五分析system_call中断处理过程

    一.实验要求: 1.使用gdb跟踪分析一个系统调用内核函数 2.根据本周所学知识分析系统调用的过程,从system_call开始到iret结束之间的整个过程,并画出简要准确的流程图 二.实验步骤: 1 ...

  2. OpenVAS应用实例

    OpenVAS应用实例 首先打开Metasploitables Linux,输入ifconfig查看本机ip地址为192.168.200.125 使用kali linux ping一下Metasplo ...

  3. AngularJs 控制台

    在控制台查看$scope对象 html: 通过控制器里面的一个元素来获取这个控制器的$scope var node=document.getElementById("NewsVote&quo ...

  4. HDU 2955 Robberies(概率DP,01背包)题解

    题意:给出规定的最高被抓概率m,银行数量n,然后给出每个银行被抓概率和钱,问你不超过m最多能拿多少钱 思路:一道好像能直接01背包的题,但是有些不同.按照以往的逻辑,dp[i]都是代表i代价能拿的最高 ...

  5. [kata](5kyu) 约瑟夫战死排序(排列)

    之前一直不懂,今天百度了下,发下kyu是级别的意思,dan是段的意思,级别数值越小越强,段数数值越大越强. 原题  https://www.codewars.com/kata/josephus-per ...

  6. UVa 10328 Coin Toss(Java大数+递推)

    https://vjudge.net/problem/UVA-10328 题意: 有H和T两个字符,现在要排成n位的字符串,求至少有k个字符连续的方案数. 思路:这道题目和ZOJ3747是差不多的,具 ...

  7. pku 2284 That Nice Euler Circuit

    题意: 给你n个点第n个点保证与第0个点相交,然后求这n个点组成的图形可以把整个平面分成几个面 思路: 这里的解题关键是知道关于多面体的欧拉定理 多面体: 设v为顶点数,e为棱数,f是面数,则v-e+ ...

  8. C++总结:C++中的const和constexpr

    C++中的const可用于修饰变量.函数,且在不同的地方有着不同的含义,现总结如下. const的语义 C++中的const的目的是通过编译器来保证对象的常量性,强制编译器将所有可能违背const对象 ...

  9. JQuery中width和JS中JS中关于clientWidth offsetWidth scrollWidth 等的含义

    JQuery中: width()方法用于获得元素宽度: innerWidth()方法用于获得包括内边界(padding)的元素宽度: outerWidth()方法用于获得包括内边界(padding)和 ...

  10. Java IO流-随机访问流

    2017-11-05 19:45:51 RandomAccessFile类(随机访问流) RandomAccessFile类:是Object的子类,此类的实例支持对随机访问文件的读取和写入.随机访问文 ...