找不到类型'tSQLt.Private'

时间:2013-05-23 02:13:41

标签: sql sql-server tsqlt

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

有人可以帮我解决这个问题

1 个答案:

答案 0 :(得分:2)

您无法卸载tSQLt,因为 tSQLtCLR 类型中的 tSQLt.Private 类型在您的情况下不存在(因为您在安装之前未启用SQL CLR)。 / p>

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.Un-install tSQLt (如果需要)

EXEC [tSQLt].[Uninstall]