SQL Server 2008:删除过程错误
我尝试执行以下命令:SQL Server 2008:删除过程错误,sql,sql-server-2008,ssms-2014,Sql,Sql Server 2008,Ssms 2014,我尝试执行以下命令: IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.njams_test_sql_2.[PROC_CHECK_TRACE_SETTINGS]') AND type in (N'P', N'PC')) DROP PROCEDURE dbo.njams_test_sql_2.[PROC_CHECK_TRACE_SETTINGS] GO 但我得到了一个错误: 味精166,第15级,
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.njams_test_sql_2.[PROC_CHECK_TRACE_SETTINGS]') AND type in (N'P', N'PC'))
DROP PROCEDURE dbo.njams_test_sql_2.[PROC_CHECK_TRACE_SETTINGS]
GO
但我得到了一个错误:
味精166,第15级,状态1,第1行“DROP PROCEDURE”不允许将数据库名称指定为对象名称的前缀
我要做的是删除数据库中的所有对象,使数据库为空。我正在使用Microsoft SQL Server 2014 Management Studio。正如错误明确指出的那样-您不能在
删除过程中使用数据库名称作为前缀
您需要确保连接到正确的数据库,然后需要执行
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.njams_test_sql_2.[PROC_CHECK_TRACE_SETTINGS]') AND type in (N'P', N'PC'))
DROP PROCEDURE [PROC_CHECK_TRACE_SETTINGS]
GO
您需要更改数据库名称和架构的顺序
这是错误的:
DROP PROCEDURE dbo.njams_test_sql_2.[PROC_CHECK_TRACE_SETTINGS]
这是正确的:
DROP PROCEDURE njams_test_sql_2.dbo.[PROC_CHECK_TRACE_SETTINGS]
或者,你可以把它们放在一边。然后使用当前数据库和默认模式(很可能是dbo
):
DROP PROCEDURE [PROC_CHECK_TRACE_SETTINGS]
你实际上可以使用数据库,但他把它放错了顺序。正确的顺序是:1。数据库,2。图式,3。过程名称。