刷新SQL Server所有视图、函数、存储过程
刷新SQL Server所有视图、函数、存储过程
此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。
[SQL]代码
--视图、存储过程、函数名称
DECLARE @NAME NVARCHAR(255);
--局部游标
DECLARE @CUR CURSOR
--自动修改未上状态为旷课
SET @CUR=CURSOR SCROLL DYNAMIC FOR
SELECT NAME FROM DBO.SYSOBJECTS
WHERE NAME NOT IN ('SYSCONSTRAINTS','SYSSEGMENTS')
AND
(
OBJECTPROPERTY(ID, N'IsView') = 1 --视图
OR OBJECTPROPERTY(ID,N'IsProcedure') = 1 --存储过程
OR OBJECTPROPERTY(ID,N'IsScalarFunction') = 1 --标量函数
OR OBJECTPROPERTY(ID,N'IsTableFunction') = 1 --标题函数
OR OBJECTPROPERTY(ID,N'IsInlineFunction') = 1 --内联函数
); OPEN @CUR;
FETCH NEXT FROM @CUR INTO @NAME WHILE (@@FETCH_STATUS=0)
BEGIN DECLARE @OldText NVARCHAR(MAX);
DECLARE @NewText NVARCHAR(MAX); --读取创建脚本,当脚本超长时分成多条记录时合并
SELECT @OldText=@OldText + CHAR(10) + CHAR(13) + RTRIM(TEXT) FROM SYSCOMMENTS WHERE ID = OBJECT_ID(@NAME); --将创建脚本替换为更新脚本
SET @NewText=REPLACE(@OldText,N'CREATE VIEW',N'ALTER VIEW');
SET @NewText=REPLACE(@NewText,N'CREATE PROCEDURE',N'ALTER PROCEDURE');
SET @NewText=REPLACE(@NewText,N'CREATE FUNCTION',N'ALTER FUNCTION'); BEGIN TRY
EXEC(@NewText);
END TRY
BEGIN CATCH
PRINT N'---------------------------------------------------------------------------';
PRINT @NAME + N' : ' + ERROR_MESSAGE();
--PRINT @OldText;
PRINT N'---------------------------------------------------------------------------';
END CATCH FETCH NEXT FROM @CUR INTO @NAME END CLOSE @CUR;
DEALLOCATE @CUR;
SQL Server修改表结构后批量更新所有视图
CREATE PROCEDURE RefreshAllView AS
DECLARE MyCursor CURSOR
FOR select Name from dbo.sysobjects where OBJECTPROPERTY(id, N'IsView') = 1 and (not name in ('sysconstraints','syssegments')) DECLARE @name varchar(40)
OPEN MyCursor FETCH NEXT FROM MyCursor INTO @name
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
begin
exec sp_refreshview @name
end
FETCH NEXT FROM MyCursor INTO @name
END CLOSE MyCursor
DEALLOCATE MyCursor
SQL SERVER得到表、视图、存储过程、触发器、字段的信息
select name from sysobjects where xtype='TR' --所有触发器
select name from sysobjects where xtype='P' --所有存储过程
select name from sysobjects where xtype='V' --所有视图
select name from sysobjects where xtype='U' --所有表
SQL SERVER得到某个数据库下面所有表字段的相信信息或者某个表的相信信息
SELECT
表名=case when a.colorder=1 then d.name else '' end,
表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
字段序号=a.colorder,
字段名=a.name,
标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
))) then '√' else '' end,
类型=b.name,
占用字节数=a.length,
长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空=case when a.isnullable=1 then '√'else '' end,
默认值=isnull(e.text,''),
字段说明=isnull(g.[value],'')
FROM syscolumns a
left join systypes b on a.xusertype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join syscomments e on a.cdefault=e.id
left join sys.extended_properties g on a.id=g.major_id and a.colid=g.minor_id
left join sys.extended_properties f on d.id=f.major_id and f.minor_id=0
--where d.name='course' --如果只查询指定表,加上此条件
order by a.id,a.colorder
获取指定SQLServer数据库所有表及视图的字段列表及类型、长度
Select o.Name As ObjectsName , c.name As ColumnsName , t.name As ColumnsType , c.length As ColumnsLength
From SysObjects As o , SysColumns As c , SysTypes As t
Where o.type in ('u','v') And o.id = c.id And c.xtype = t.xtype
Order By o.name , c.name , t.name , c.Length
刷新SQL Server所有视图、函数、存储过程的更多相关文章
- 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO
刷新SQL Server所有视图.函数.存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图.函数.存储过程有效性. [SQL]代码 --视图.存储过程.函数名称 DE ...
- sql server 常用的系统存储过程
系统存储过程 说明 sp_databases 列出服务上的所有数据库 sp_helpdb 报告有关指定数据库或所有数据库的信息 sp_renamedb 更改数据库的名称 sp_tables 返回当 ...
- sql server中常用方法函数
SQL SERVER常用函数 1.DATEADD在向指定日期加上一段时间的基础上,返回新的 datetime 值. (1)语法: DATEADD ( datepart , number, date ) ...
- SQL Server UDF用户自定义函数
UDF的定义 和存储过程很相似,用户自定义函数也是一组有序的T-SQL语句,UDF被预先优化和编译并且尅作为一个单元爱进行调用.UDF和存储过程的主要区别在于返回结果的方式. 使用UDF时可传入参数, ...
- SQL Server 分隔字符串函数实现
在SQL Server中有时候也会遇到字符串进行分隔的需求.平时工作中常常遇到这样的需求,例如:人员数据表和人员爱好数据表,一条人员记录可以多多人员爱好记录,而往往人员和人员爱好在界面展示层要一并提交 ...
- SQL SERVER分区视图
借助SQL SERVER分区视图,可以对SQL中的表进行集中管理,下文将以实例的方式为您详解SQL SERVER分区视图,希望对您学习SQL数据库能有所帮助. SQL SERVER分区视图给我们提供了 ...
- 深入浅出SQL Server 2008 分区函数和分区表
原文:深入浅出SQL Server 2008 分区函数和分区表 当我们数据量比较大的时候,我们需要将大型表拆分为多个较小的表,则只访问部门数据的查询就可以更快的运行,基本原理就是,因为要扫描的数据变的 ...
- SQL Server 2008 分区函数和分区表详解
[摘要]本文详细介绍SQL Server 2008 分区函数和分区表,包括查询某个分区.归档数据.添加分区.删除分区等内容. 当我们数据量比较大的时候,我们需要将大型表拆分为多个较小的表,则只访问部门 ...
- sql server中quotename()函数的用法(转载)
操作sql server尤其是写存储过程时,要用到各种各样的函数,今天就总结一个quotename()的用法.1.语法: quotename('character_string'[,'quote_ch ...
随机推荐
- SQL Server2008创建数据库语法
use mastergo if exists(select * from sys.databases where name='MySchool') drop database MySchool -- ...
- linux history记录格式修改
#保存一万条命令记录 sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile #在/etc/profile的文件尾部添加如下行数配置信息 ### ...
- 20145322何志威《网络对抗》逆向及Bof基础
20145322何志威<网络对抗>逆向及Bof基础 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任 ...
- 20145325张梓靖 《Java程序设计》第2周学习总结
20145325张梓靖 <Java程序设计>第2周学习总结 教材学习内容总结 整数 short 2字节,int 4字节,long 8字节 字节 byte 1字节 浮点数 float 4字节 ...
- CEF3开发者系列之CefEnableHighDPISupport详解
在CEF3中,CefEnableHighDPISupport()这个接口函数在使用时一般不为人所注意,但是如果稍有不慎,会造成打开的网页不能填满窗口的问题.如果是需要flash插件才能运行的游戏.则会 ...
- curl使用介绍
linux curl是通过url语法在命令行下上传或下载文件的工具软件,它支持http,https,ftp,ftps,telnet等多种协议,常被用来抓取网页和监控Web服务器状态. 一.Linux ...
- mac上 sublime的配置,支持c++11且支持输入
首先下载mac版本的 sublimetext3 下载链接: https://www.sublimetext.com/3 接着可以按照其他博客的方法来安装一些插件,便于我们的工作和学习 安装sublim ...
- IDEA 搭建授权服务器
引用地址 http://blog.lanyus.com/archives/317.html 今天突出发现基本公开的激活地址都被屏蔽了(IDEA 2017.3 版本) 记录一下 docker pull ...
- VS2012 QT程序打包部署详解
1.设置安装程序集 InstallShield安装完成后,执行以下步骤右键解决方案-->添加-->新建项目-->其他项目类型-->安装和部署,具体操作如下图: 2.发布程序 在 ...
- Python网络编程(Sockets)
一个简单的服务器 #!/usr/bin/python3 # This is server.py file import socket # create a socket object serverso ...