问题标签 [tsqlt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
277 浏览

sql - 联合或使用流控制逻辑来确定要报告哪个表

我正在使用无法更改表格的 3rd pary 应用程序。我们使用附加的日期时间列“AsOfDate”构建了自定义匹配的“每月”表,我们在其中转储了月末的数据,并将这些数据标记为当月最后一天的日期。

我希望能够创建单个存储过程(应用程序旨在要求视图或存储过程作为所有报告的来源。)并使用将使用当前数据表的参数(参数可能为 NULL 或 = Today's日期)或使用月末表并按月末日期过滤。这样,我有一个报告,用户可以使用当前或特定月末期间的数据。

你更喜欢哪个(以及为什么)对不起,这不是完全编码的

解决方案 #1 联合查询

解决方案 #2 使用 If 语句选择表

同样,这不是完全编码的,并且与数据库无关(但它是 SQL Server 2005)。

编辑:使用单独的存储过程对解决方案 #2 的变体

0 投票
2 回答
137 浏览

.net - 当数据库中没有数据时测试 SQL Server 存储过程的任何工具。

您是否知道任何用于测试数据库中数据不可用的 sql server 存储过程的实用程序或工具,可能是该工具应该通过读取存储过程将数据插入数据库...

有什么建议么 ?

谢谢。

0 投票
2 回答
816 浏览

sql - 为什么 Red Gate SQL Test 的第一个 tSQLt 样本测试在我的系统上失败?

我最近在运行 SSMS for SQL Server 2008 R2 的虚拟机 (VMWare 8) 上安装了SQL 测试插件。这是tSQLt的前端。我在服务器上启用了 CLR。我安装了 tSQLt 示例数据库。我点击了运行按钮。我希望所有的样本测试都能通过。我观察到只有一次通过。

第一个测试,标题为 [AcceleratorTests]。[测试准备好进行实验,如果 2 个粒子] 失败:预期:<1> 但为 <0>。

我已经阅读了所涉及的 SQL,并且看起来应该通过了。据我所知,Red Gate 提供的代码与 tSQLt 为示例数据库提供的代码相同。机器上有几层新的东西,现在,SQL 测试运行器和 tSQLT 脚本集。我有点迷失了,试图找出错误在哪里。关于我应该首先看什么的任何建议?

TIA

0 投票
4 回答
3889 浏览

tsqlt - 使用 tSQLt 进行测试时如何回滚事务

我最近正在调用一个在代码中包含 rasierror 的过程。raiserror 在 try catch 块中。在 raiserror 之后,BEGIN TRAN 也在同一个 try catch 块中。Catch 块旨在在事务中发生错误时回滚事务。这样做的方法是检查@@TRANCOUNT 是否大于 0 我知道它已经开始了一个事务并且需要回滚。使用 tSQLt 进行测试时,@@TRANCOUNT 始终 >0,因此如果它遇到 CATCH 块,则执行 ROLLBACK 并且 tSQLt 失败(因为 tSQLt 正在事务中运行)。当我遇到错误并且运行 CATCH 块时,tSQLt 总是无法通过测试。我无法测试 raiserror 的正确处理。您将如何创建一个可能回滚事务的测试用例?

0 投票
2 回答
959 浏览

sql-server - 在计算列上使用 tSQLt 进行单元测试

我最近在调用包含(持久)计算列的表的过程上编写了一些 tSQLt 数据库单元测试(通过 Red Gate SQL 测试),并注意如果我使用 FakeTable SP,我发现计算列没有填充(他们评估为空)。计算列是测试的关键,所以我不能只忽略测试中的列,我宁愿不重复逻辑。

我正在使用 tSQLt.AssertEqualsTable SP 评估结果,因此我想确保两者的列值相同。

在实践中,我通过不使用 FakeTable 来解决这个问题,而是在测试结束时使用(部分)回滚事务语句(根据http://sqlity.net/en/585/how-上的博客文章) to-rollback-in-procedures/)或显式删除测试值。

我确信必须有更好的方法来编写这个测试,并欢迎任何建议。

0 投票
2 回答
3946 浏览

sql-server - tSQLt 的 SQLCop 测试

用于 SQL 单元测试的 Redgate工具SQLTest现在提供了从SQLCop添加测试的能力,但是 Redgate 工具只附带了其中的一小部分测试预构建。

由于测试只是存储过程,我相信有人已经实现了更多这些测试。

你愿意分享吗?任何人?

0 投票
3 回答
2335 浏览

sql - 如何获得 MAX int 但排除特定的 int?

我想从特定列中获取最大整数,不包括如果存在则始终为最大值的值。数据可能如下所示:

在上面,我希望 MAX 分数小于 10。MAX(score) 在这种情况下不起作用,因为它会带回 10。结果应该如下所示:

有什么建议么?

0 投票
4 回答
1372 浏览

sql - tSQLt 在尝试 FakeTable 同义词表时失败

我正在使用 tSQLt(通过 Red Gate 的 SQL 测试版本 1.0.0.455)。tSQLt 安装在数据库 A 上。我正在尝试通过数据库 A 上的同义词对同一 SQL 服务器实例上的数据库 B 中的表执行 tSQLt.FakeTable。

代码:

ALTER PROCEDURE [ErrorType109NonTankHasSizeOrVolume].[test AliasTest] AS

开始执行tSQLt.FakeTable
'dbo.Bygning';

插入 dbo.Bygning (ObjStatus) 值 (1);

执行 tSQLt.AssertEquals 1, 1
END;

数据库 A 中的同义词在哪里dbo.Bygning是指数据库 B 中的表,并且ObjStatus是数据库中的列dbo.Bygning

错误信息:

有没有办法 tSQLt.FakeTable 同义词表?

澄清: 运行测试时出现错误消息。

0 投票
1 回答
504 浏览

sql - 我安装了哪个版本的 tSQLt(数据库测试框架)?

有什么方法可以找到安装在数据库上的tSQLt的版本号?

请注意,tSQLt 是 SQL Server 的测试框架,而不是 T-SQL。(请不要投票关闭作为无关内容的重复项。)

0 投票
3 回答
1554 浏览

sql-server - tSQLt TRUSTWORTHY 和 CLR 要求

tSQLt测试框架需要为数据库设置 TRUSTWORTHY ON,并为服务器启用 SQL CLR。

为什么需要这些?是否可以在没有 CLR 对象的情况下实现相同/相似的功能?