我已安装 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)。
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/