Ошибка хранимой процедуры T-SQL - PullRequest
1 голос
/ 10 ноября 2009

Я получаю следующую ошибку при запуске SP в SQL Server 2008 Management Studio:

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

Ответы [ 3 ]

1 голос
/ 10 ноября 2009

Изменение:

alter procedure dbo.BackupDB

до:

create procedure dbo.BackupDB as
1 голос
/ 10 ноября 2009

Это означает, что вы не создали процедуру. Запустите его снова как CREATE PROCEDURE

0 голосов
/ 10 ноября 2009

SP должен быть создан. Вершина sp может быть такой:

используйте [Мастер];
идти
СОЗДАТЬ процедуру dbo.BackupDB
- alter процедура dbo.BackupDB
@dbName varchar (128),
@path varchar (256)
а
начать

Строка Alter закомментирована. Затем, после того как вы выполните процедуру и создадите ее, вы можете закомментировать строку создания и раскомментировать строку изменения, такую ​​как

использовать [Мастер];
идти
- СОЗДАТЬ процедуру dbo.BackupDB
изменить процедуру dbo.BackupDB

@dbName varchar(128),<br>
@path varchar(256)<br>
* *, Как тысяча двадцать-один * * тысяча двадцать две начать

Надеюсь, это поможет,

Катто

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...