首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Exec tSQLt.Faketable破坏了原始表约束和数据

Exec tSQLt.Faketable破坏了原始表约束和数据
EN

Stack Overflow用户
提问于 2022-04-22 14:16:27
回答 2查看 96关注 0票数 0

在调试tsqlt代码期间,我直接运行了以下语句,而没有将其包装为sp,并且删除了原始表约束,并从原始表中丢失了一些数据。

Exec tSQLt.FakeTable @TableName = N'DBO.Employee',@Identity=1;Exec tSQLt.FakeTable @TableName = N'DBO.Salary',@Identity=1;

如何防止在tsqlt中运行faketable语句影响原始表?

EN

回答 2

Stack Overflow用户

发布于 2022-04-22 20:57:26

没有办法阻止在框架之外执行tSQLt.FakeTable。我们也有很好的理由不去阻止这种情况,所以我不认为添加这种功能是正确的方法。

但是,如果使用的是最新版本的tSQLt,则可以使用tSQLt.UndoTestDoubles返回原始对象。

票数 2
EN

Stack Overflow用户

发布于 2022-04-22 14:28:37

呃,去过.您无法阻止它,除非为项目做出贡献,并在其中添加一个拉请求来添加功能。

FakeTable为您的原始表创建一个备份,因此您应该能够获得原始表。这些备份表名以tSQLt.tempobject开头,以标识符结尾。您可以删除新的“假”表(该表现在具有原始表的名称),并在找到时重命名tempobject表。

我过去做过的事情是查询表中已知的列,以查找tSQLt表的名称:

代码语言:javascript
复制
SELECT t.name
FROM sys.columns c
INNER JOIN sys.tables t ON t.object_id = c.object_id
WHERE c.name = 'SomeCol';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71970240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档