2

我已经安装了 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'.

有人可以在这种情况下帮助我吗

4

1 回答 1

4

您无法卸载 tSQLt,因为tSQLt.Private类型从tSQLtCLR程序集中在您的情况下不存在(因为您在安装之前没有启用 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]
于 2013-05-25T17:34:57.903 回答