Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server 2008:删除过程错误_Sql_Sql Server 2008_Ssms 2014 - Fatal编程技术网

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。过程名称。