Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 удалить базу при пользователях  [new]
user23
Member

Откуда:
Сообщений: 68
удаляю базу
CREATE            PROCEDURE [dbo].[GoOffMyDB] 
@DB_Name varchar (100)
AS
-- Если база ONLINE  удаляем базу, удаляем файлы базы
-- Имя базы @DB_Name

declare  @status nvarchar(50)
declare @ssql nvarchar(500)
declare  @string nvarchar(500)
DECLARE @result int

SELECT @status=CAST(DATABASEPROPERTYEX( @DB_Name , 'STATUS') As varchar(50))

IF @status IS NULL return

IF @status='ONLINE' AND  @status IS NOT NULL
begin

SET @ssql='use master ALTER DATABASE  '+@DB_Name+' SET SINGLE_USER WITH ROLLBACK IMMEDIATE DROP DATABASE '+@DB_Name
print @ssql
Exec (@ssql)
end
ELSE
begin
SET @ssql='DROP DATABASE '+@DB_Name
print @ssql
Exec (@ssql)
end


работает, но иногда

Executed as user: NT AUTHORITY\SYSTEM. dbp [SQLSTATE 01000] (Message 0)  ONLINE [SQLSTATE 01000] (Message 0)  use master ALTER DATABASE  dbprivat17 SET SINGLE_USER WITH ROLLBACK IMMEDIATE DROP DATABASE dbp [SQLSTATE 01000] (Message 0)  Cannot drop database "dbp" because it is currently in use. [SQLSTATE 42000] (Error 3702).  The step failed.

хотя считаю что перед удалением всех выгнал, разве не так?
10 сен 14, 06:44    [16557297]     Ответить | Цитировать Сообщить модератору
 Re: удалить базу при пользователях  [new]
Glory
Member

Откуда:
Сообщений: 104751
user23
хотя считаю что перед удалением всех выгнал, разве не так?

Выгнали. Но не запретили тут же снова начать использовать базу.
10 сен 14, 09:11    [16557481]     Ответить | Цитировать Сообщить модератору
 Re: удалить базу при пользователях  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31816
user23
хотя считаю что перед удалением всех выгнал, разве не так?

Этим:
use master ALTER DATABASE  dbprivat17 SET SINGLE_USER WITH ROLLBACK IMMEDIATE DROP DATABASE dbprivat17

Вы не выгнали всех, а выгнали всех, кроме одного.

Может, так попробовать?
ALTER DATABASE  dbprivat17 SET SINGLE_USER WITH ROLLBACK IMMEDIATE use master DROP DATABASE dbprivat17
10 сен 14, 09:16    [16557493]     Ответить | Цитировать Сообщить модератору
 Re: удалить базу при пользователях  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
USE master
GO

ALTER DATABASE <dbname> SET OFFLINE WITH ROLLBACK IMMEDIATE 
GO

DROP DATABASE <dbname>
10 сен 14, 09:27    [16557529]     Ответить | Цитировать Сообщить модератору
 Re: удалить базу при пользователях  [new]
user23
Member

Откуда:
Сообщений: 68
благодарю за ответы
10 сен 14, 11:14    [16558043]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить