我已经安装了具有CLR权限的tSQLt。我不确定它是如何安装的。我看到了类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'.
有人可以帮我解决这个问题
答案 0 :(得分:2)
您无法卸载tSQLt,因为 tSQLtCLR 类型中的 tSQLt.Private 类型在您的情况下不存在(因为您在安装之前未启用SQL CLR)。 / p>
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.Un-install tSQLt (如果需要)
EXEC [tSQLt].[Uninstall]