执行tSQLt.Faketable破坏了我们原来的表约束和数据



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

Exec tSQLt。FakeTable @TableName = N'DBO。员工"@Identity = 1;Exec tSQLt。FakeTable @TableName = N'DBO。工资的,@Identity = 1;

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

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

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

我也有过……你不能阻止它,除非你对项目做出贡献,并提出拉取请求来添加功能。

FakeTable创建了原始表的备份,因此您应该能够获得原始表。这些备份表名以tSQLt.tempobject开头,以标识符结尾。您可以删除新的"假"字。表(现在具有原始表的名称),如果/当您找到它时,请重命名该对象表。

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

SELECT t.name
FROM sys.columns c
INNER JOIN sys.tables t ON t.object_id = c.object_id
WHERE c.name = 'SomeCol';

最新更新