在SQL Server 2008 R2 Express中从主服务器清理用户表

时间:2014-06-25 19:02:51

标签: sql sql-server sql-server-2008 sql-server-2008-r2

我不小心使用master运行了一个create schema脚本,现在我想清理它们。我是Win7,SQL Server 2008 R2 Express。我使用Windows身份验证使用本地用户帐户登录SQL Server Management Studio。当我尝试在SQL Server Management Studio中执行drop table语句时

DROP TABLE EVENT_CATEGORY_BRIDGE
GO 
DROP TABLE SUBSCRIBER_RELATIONSHIP_TYPE_REFERENCE
GO 

等。我得到了

Msg 3701, Level 11, State 5, Line 1

Cannot drop the table 'SUBSCRIBER_RELATIONSHIP_TYPE_REFERENCE', because it does not exist or you do not have permission.

如果我右键单击并尝试在对象浏览器中删除我的垃圾表,我会收到一条消息,表示该表已成功删除 - 但我仍然可以在对象浏览器中看到它,所以我猜测我不会&#39 ; t有权从master中删除表。

我认为有一个问题是我这台计算机上的本地用户帐户不是管理员。我不确定此时我能做什么,有什么建议吗?

2 个答案:

答案 0 :(得分:1)

使用以下查询返回默认情况下未包含在master中的架构和表名称:

SELECT OBJECT_SCHEMA_NAME(object_id) AS SchemaName, name AS TableName
FROM master.sys.objects WHERE type_desc = 'USER_TABLE' AND is_ms_shipped = 0;

检查结果后,为您要删除的每个人运行DROP TABLE [<SchemaName>].[<TableName>]

答案 1 :(得分:0)

您需要在master数据库上运行delete tsql。尝试包含架构。

执行删除后,您需要刷新对象资源管理器。