REDGATE SQL TEST的使用

原文:REDGATE SQL TEST的使用

REDGATE SQL TEST的使用

SQL TEST下载和破解可以参考这篇文章:http://www.cnblogs.com/VAllen/archive/2012/10/01/SQLTest.html#

SQL TEST默认已经创建好5个测试数据库中错误的存储过程

第一个存储过程测试数据库中是否有Decimal数据类型大小的问题

第二个存储过程测试数据库中是否有以SP_开头的存储过程

第三个存储过程测试数据库中使用的动态sql是否没有使用sp_executesql来调用

第四个存储过程测试数据库中的存储过程是否有@@Identity全局变量

第五个存储过程测试数据库中存储过程是否有使用SET ROWCOUNT

 

您可以编辑这些默认的测试存储过程

例如第一个存储过程,测试Decimal数据类型大小错误

 1 ALTER PROCEDURE [SQLCop].[test Decimal Size Problem]
 2 AS
 3 BEGIN
 4     -- Written by George Mastros
 5     -- February 25, 2012
 6     -- http://sqlcop.lessthandot.com
 7     -- http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/always-include-precision-and-scale-with
 8
 9     SET NOCOUNT ON
10
11     Declare @Output VarChar(max)
12     Set @Output = ''
13
14     Select @Output = @Output + Schema_Name(schema_id) + '.' + name + Char(13) + Char(10)
15     From    sys.objects
16     WHERE    schema_id <> Schema_ID('SQLCop')
17             And schema_id <> Schema_Id('tSQLt')
18             and (
19             REPLACE(REPLACE(Object_Definition(object_id), ' ', ''), 'decimal]','decimal') COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI LIKE '%decimal[^(]%'
20             Or REPLACE(REPLACE(Object_Definition(object_id), ' ', ''), 'numeric]','numeric') COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI LIKE '%[^i][^s]numeric[^(]%'
21             )
22     Order By Schema_Name(schema_id), name
23
24     If @Output > ''
25         Begin
26             Set @Output = Char(13) + Char(10)
27                           + 'For more information:  '
28                           + 'http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/always-include-precision-and-scale-with'
29                           + Char(13) + Char(10)
30                           + Char(13) + Char(10)
31                           + @Output
32             EXEC tSQLt.Fail @Output
33         End
34 END;

您也可以运行他,他会检查数据库中每个表的数据类型,并检查每个表中的数据

如果你想一次过执行所有的测试存储过程可以按左上角的run tests按钮



下面来试一下怎麽使用,先创建一个以SP_开头的存储过程,您可以按左上角的run tests按钮或者只选中test Procedures Named SP_

这个测试存储过程,然后右键-》run test

 

其他4个测试存储过程

 1 ALTER PROCEDURE [SQLCop].[test Procedures With SET ROWCOUNT]
 2 AS
 3 BEGIN
 4     -- Written by George Mastros
 5     -- February 25, 2012
 6     -- http://sqlcop.lessthandot.com
 7     -- http://sqltips.wordpress.com/2007/08/19/set-rowcount-will-not-be-supported-in-future-version-of-sql-server/
 8
 9     SET NOCOUNT ON
10
11     Declare @Output VarChar(max)
12     Set @Output = ''
13
14     SELECT    @Output = @Output + Schema_Name(schema_id) + '.' + name + Char(13) + Char(10)
15     From    sys.all_objects
16     Where    type = 'P'
17             AND name Not In('sp_helpdiagrams','sp_upgraddiagrams','sp_creatediagram','testProcedures With SET ROWCOUNT')
18             And Replace(Object_Definition(Object_id), ' ', '') COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI Like '%SETROWCOUNT%'
19             And is_ms_shipped = 0
20             and schema_id <> Schema_id('tSQLt')
21             and schema_id <> Schema_id('SQLCop')
22     ORDER BY Schema_Name(schema_id) + '.' + name
23
24     If @Output > ''
25         Begin
26             Set @Output = Char(13) + Char(10)
27                           + 'For more information:  '
28                           + 'http://sqltips.wordpress.com/2007/08/19/set-rowcount-will-not-be-supported-in-future-version-of-sql-server/'
29                           + Char(13) + Char(10)
30                           + Char(13) + Char(10)
31                           + @Output
32             EXEC tSQLt.Fail @Output
33         End
34 END;

View Code

 1 ALTER PROCEDURE [SQLCop].[test Procedures with @@Identity]
 2 AS
 3 BEGIN
 4     -- Written by George Mastros
 5     -- February 25, 2012
 6     -- http://sqlcop.lessthandot.com
 7     -- http://wiki.lessthandot.com/index.php/6_Different_Ways_To_Get_The_Current_Identity_Value
 8
 9     SET NOCOUNT ON
10
11     Declare @Output VarChar(max)
12     Set @Output = ''
13
14     Select    @Output = @Output + Schema_Name(schema_id) + '.' + name + Char(13) + Char(10)
15     From    sys.all_objects
16     Where    type = 'P'
17             AND name Not In('sp_helpdiagrams','sp_upgraddiagrams','sp_creatediagram','testProcedures with @@Identity')
18             And Object_Definition(object_id) COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI Like '%@@identity%'
19             And is_ms_shipped = 0
20             and schema_id <> Schema_id('tSQLt')
21             and schema_id <> Schema_id('SQLCop')
22     ORDER BY Schema_Name(schema_id), name
23
24     If @Output > ''
25         Begin
26             Set @Output = Char(13) + Char(10)
27                           + 'For more information:  '
28                           + 'http://wiki.lessthandot.com/index.php/6_Different_Ways_To_Get_The_Current_Identity_Value'
29                           + Char(13) + Char(10)
30                           + Char(13) + Char(10)
31                           + @Output
32             EXEC tSQLt.Fail @Output
33         End
34
35 END;

View Code

 1 ALTER PROCEDURE [SQLCop].[test Procedures using dynamic SQL without sp_executesql]
 2 AS
 3 BEGIN
 4     -- Written by George Mastros
 5     -- February 25, 2012
 6     -- http://sqlcop.lessthandot.com
 7     -- http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/avoid-conversions-in-execution-plans-by-
 8
 9     SET NOCOUNT ON
10
11     Declare @Output VarChar(max)
12     Set @Output = ''
13
14     SELECT    @Output = @Output + SCHEMA_NAME(so.uid) + '.' + so.name + Char(13) + Char(10)
15     From    sys.sql_modules sm
16             Inner Join sys.sysobjects so
17                 On  sm.object_id = so.id
18                 And so.type = 'P'
19     Where    so.uid <> Schema_Id('tSQLt')
20             And so.uid <> Schema_Id('SQLCop')
21             And Replace(sm.definition, ' ', '') COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI Like '%Exec(%'
22             And Replace(sm.definition, ' ', '') COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI Not Like '%sp_Executesql%'
23             And OBJECTPROPERTY(so.id, N'IsMSShipped') = 0
24     Order By SCHEMA_NAME(so.uid),so.name
25
26     If @Output > ''
27         Begin
28             Set @Output = Char(13) + Char(10)
29                           + 'For more information:  '
30                           + 'http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/avoid-conversions-in-execution-plans-by-'
31                           + Char(13) + Char(10)
32                           + Char(13) + Char(10)
33                           + @Output
34             EXEC tSQLt.Fail @Output
35         End
36
37 END;

View Code

 1 ALTER PROCEDURE [SQLCop].[test Procedures Named SP_]
 2 AS
 3 BEGIN
 4     -- Written by George Mastros
 5     -- February 25, 2012
 6     -- http://sqlcop.lessthandot.com
 7     -- http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/MSSQLServer/don-t-start-your-procedures-with-sp_
 8
 9     SET NOCOUNT ON
10
11     Declare @Output VarChar(max)
12     Set @Output = ''
13
14     SELECT    @Output = @Output + SPECIFIC_SCHEMA + '.' + SPECIFIC_NAME + Char(13) + Char(10)
15     From    INFORMATION_SCHEMA.ROUTINES
16     Where    SPECIFIC_NAME COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI LIKE 'sp[_]%'
17             And SPECIFIC_NAME COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI NOT LIKE '%diagram%'
18             AND ROUTINE_SCHEMA <> 'tSQLt'
19     Order By SPECIFIC_SCHEMA,SPECIFIC_NAME
20
21     If @Output > ''
22         Begin
23             Set @Output = Char(13) + Char(10)
24                           + 'For more information:  '
25                           + 'http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/MSSQLServer/don-t-start-your-procedures-with-sp_'
26                           + Char(13) + Char(10)
27                           + Char(13) + Char(10)
28                           + @Output
29             EXEC tSQLt.Fail @Output
30         End
31 END;

View Code

还会在测试数据库生成一些存储过程和函数

某些存储过程还加密了的



创建测试存储过程

SQL TEST跟SQL PROMPT一样,根据SQLSERVER版本来开发的

时间: 2024-11-10 05:30:53

REDGATE SQL TEST的使用的相关文章

[SQL]透過redgate SQL Monitor 來找出 ASYNC_NETWORK_IO 問題

原文:[SQL]透過redgate SQL Monitor 來找出 ASYNC_NETWORK_IO 問題 最近因為在查一個SQL的效能問題,透過 sys.dm_os_wait_stats 來取得Top的Wait(from Wait statistics, or please tell me where it hurts) ,如下, SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; GO --1.取得目前最高的Wait WITH [Waits]

1. SQL Server服务器监控实现方法

原文:1. SQL Server服务器监控实现方法 对于服务器的监控,和对数据库的监控,很少有合二为一的工具,如果有的话,一般是付费软件,或者自行开发的工具.所以如果不想购买软件,也不想花精力去开发的话,可以结合一些免费/开源的工具.自定义脚本,来完成对数据库服务器的监控. 一. 第三方工具1. 开源工具比如:CACTI,Nagios,Zabbix等等,除了主机外,对于网络上的其他设备,比如路由器等也可以一并监控.以CACTI为例(CACTI可以在windows下安装),服务器监控的图示:(1)

使用升级脚本进行数据库版本管理及发布

1.简介 数据库升级经常被拖到发布任务的"收官阶段",它经常被留在整个项目的最后,或者是发布前的最后一个sprint才完成,这种状况很不理想,因为: 每次软件发布在测试环境上时,数据库经常会被重建,这意味着测试人员每次都会丢失他们的测试数据. 如果项目的周期较长,升级脚本有时会拖延到最初的数据库改变发生后数月才开始编写,而这时关于如何迁移数据的想法可能早已遗忘,或者有所缺失了. 如果升级脚本没有在发布到生产环境前经过彻底并且重复性的测试,那失败的风险就非常高. 编写升级脚本所需的时间难

Visual Studio 2017正式版发布全纪录

又是一年发布季,微软借着Visual Studio品牌20周年之际,于美国太平洋时间2017年3月7日9点召开发布会议,宣布正式发布新一代开发利器Visual Studio 2017.同时发布的还有 .NET Core Tooling 1.0 .NET Core Microservice instance Visual Studio for MAC preview 4 Visual Studio Mobile Center Preview Team Foundation Server 2017

SQLSERVER数据库中的对象工具:dbForge SQL Decryptor2.1.11

dbForge SQL Decryptor这个工具的软件公司是devart,也是跟redgate公司一样,制作各种数据库辅助工具和编程工 具的一家比较出名的软件公司 官网:http://www.devart.com/ 软件下载地址: http://www.devart.com/dbforge/sql/sqldecryptor/download.html http://files.cnblogs.com/lyhabc/sqldecryptor.rar 这个工具是免费的,不用破解,安装完毕,立刻可以

加快SQL Server备份和重新存储的速度

每个SQL Server上面执行的最重要的任务之一都是运行备份和恢复.备份将你的数据库拷贝一份,当 问题发生在你的产品数据库的时候,备份通过给你一份完全的拷贝来恢复而提供安全措施.在大多数情况 下,恢复过程都是以非产品关键的方式完成的,例如净化开发/测试环境或者净化报告报告环境.但是在 大多数的关键模式下,你都需要通过恢复这些备份拷贝来修正产品环境. 基于创建备份的重要性,以及恢复备份来纠正产品问题的关键需求,时间就是根本.备份是在线操作 ,但是他们确实使用了系统资源.然而,恢复需要对数据库进行

RedGate 工具SQLMultiScript1.1

原文:RedGate 工具SQLMultiScript1.1 RedGate 工具SQLMultiScript1.1 SQLMultiScript是一个脚本分发工具,当你写好了一个SQL脚本之后,你需要在很多台SQLSERVER服务器上执行的时候 就需要用到这个工具了 破解版下载地址:http://www.kuaipan.cn/file/id_4401224786926115.htm 安装好之后,将下面破解文件替换掉安装文件夹里的相应文件再重新打开软件就可以了 如果没有这个工具,在SQL2012

Red Gate系列之八 SQL Connect 1.1.1.19 Edition 数据库连接及操作工具 完全破解+使用教程

原文:Red Gate系列之八 SQL Connect 1.1.1.19 Edition 数据库连接及操作工具 完全破解+使用教程 Red Gate系列之八 SQL Connect 1.1.1.19 Edition 数据库连接及操作工具 完全破解+使用教程 Red Gate系列文章: Red Gate系列之一 SQL Compare 10.2.0.1337 Edition 数据库比较工具 完全破解+使用教程 Red Gate系列之二 SQL Source Control 3.0.13.4214

批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor

原文:批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor 批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor2.1.11 之前写过一篇文章,使用redgate公司的SQL PROMPT工具,但是不太方便 SQLPROMPT5.3对各种加密对象的解密测试 SQL2005解密已经被加密的存储过程 昨天ahdung 童鞋介绍了这个工具给我,非常感谢他 dbForge SQL Decryptor这个工具的软件公司是dev