T-SQL存储过程的错误
我收到以下错误,当我在SQL Server 2008 Management Studio中执行SP:T-SQL存储过程的错误
Msg 208, Level 16, State 6, Procedure BackupDB, Line 36
Invalid object name 'dbo.BackupDB'.
use [Master];
go
alter procedure dbo.BackupDB
@dbName varchar(128),
@path varchar(256)
as
begin
declare @device1 varchar(256);
declare @device2 varchar(256);
declare @path1 varchar(256);
declare @path2 varchar(256);
declare @sql varchar(500);
if @dbName is null or @path is null
raiserror('Error: Database name and/or Path missing', 10, 1);
if not exists(select * from sys.databases where name = @dbName)
raiserror('Database %s does not exist', 10, 1, @dbName);
begin
set @sql = 'ALTER DATABASE ' + @dbName + '; SET RECOVERY FULL;';
exec(@sql);
set @device1 = @dbName + '_Data';
set @device2 = @dbname + '_Log';
set @path1 = @path + '\' + @dbname + '_Data.bak';
set @path2 = @path + '\' + @dbname + '_Log.bak';
print 'path :' + @path1;
print 'path :' + @path2;
exec sp_addumpdevice 'disk', @device1, @path1;
exec sp_addumpdevice 'disk', @device2, @path2;
backup database @dbName TO @device1;
backup log @dbName TO @device2;
end
end
go
这意味着你没有创建的过程。再次运行它作为CREATE PROCEDURE
变化:
alter procedure dbo.BackupDB
到:
create procedure dbo.BackupDB as
谢谢。它现在有效。 – DRags 2009-11-10 20:42:56
的SP需要创建。 SP的顶部可以是如:
使用[主];
去
CREATE PROCEDURE dbo.BackupDB
--alter过程dbo.BackupDB
@DbName VARCHAR(128),
@path VARCHAR(256)
作为
开始
在ALTER线被注释掉了。然后在你执行程序&创建它之后,你可以注释掉创建行&取消注释alter line,如
使用[Master];
去
- 创建过程dbo.BackupDB
ALTER过程dbo.BackupDB
@dbName varchar(128),<br>
@path varchar(256)<br>
为
开始
希望这有助于
卡托
谢谢。它现在有效。 – DRags 2009-11-10 20:42:17
谢谢,它现在有效。但是我创建了这个SP,它确实出现在工作室的资源管理器中,为什么它会抛出此消息? – DRags 2009-11-10 19:55:36
可能是因为你是不是在同一个数据库运行的命令,你正在寻找(至少在这就是为什么我得到这些所有的时间)。 – erikkallen 2009-11-10 22:24:09
也有可能它不是作为dbo创建的。但some_other_schema。 – 2009-11-11 18:45:45