sql - 找不到类型 'tSQLt.Private'

标签 sql sql-server tsqlt

我已安装 tSQLt,且 CLR 权限已关闭。我不确定它是如何安装的。我看到一些 tSQLt 类的存储过程。现在我尝试通过清理 tSQLt 来重新安装它,但无法做到这一点。

当我运行tSQLt.Uninstall时,它会给出以下消息

EXEC tSQLt.Uninstall
Msg 218, Level 16, State 1, Procedure Uninstall, Line 5
Could not find the type 'tSQLt.Private'. Either it does not exist or you do not have the necessary permission.

不,我已经运行了tSQLt.cleanup,它给出了以下错误。

Msg 3729, Level 16, State 1, Line 2
Cannot drop schema 'tSQLt' because it is being referenced by object 'NullTestResultFormatter'.

有人可以在这方面帮助我

最佳答案

您无法卸载 tSQLt,因为您的案例中不存在 tSQLtCLR 程序集中的 tSQLt.Private 类型(因为您在安装之前没有启用 SQL CLR)。

enter image description here

select * from sys.assembly_types where assembly_class = 'tSQLtCLR.tSQLtPrivate'

要根据您的情况重新/卸载 tSQLt,您需要:

1.启用SQL CLR:

EXEC sp_configure 'clr enabled', 1;
RECONFIGURE;
GO
DECLARE @cmd NVARCHAR(MAX);
SET @cmd='ALTER DATABASE ' + QUOTENAME(DB_NAME()) + ' SET TRUSTWORTHY ON;';
EXEC(@cmd);
GO

2.重新安装 tSQLt - 只需从 tSQLt.class.sql 执行 sql 脚本(它会删除并重新创建所有对象,如果它们确实存在)

3.卸载tSQLt(如果需要)

EXEC [tSQLt].[Uninstall]

关于sql - 找不到类型 'tSQLt.Private',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16704567/

相关文章:

sql-server - 使用不同的模式同步 2 个数据库

sql - 确定锁升级的阈值

sql-server - SQL 查询如何从这些表中返回数据?

tsqlt - 有没有办法在调用 tSQLt.ExpectException 后测试测试中的其他断言?

python - 在 SQLAlchemy 中映射大量相似的表

sql - Django - 获取其他2个字段相等的字段总和

sql - 按邮政编码邻近度搜索 - MySql

sql - 确定到达和离开的成对以计算在目的地花费的时间

tSQLt 断言失败消息数字精度

tsql - 代码复用 tsqlt/sql 测试