![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
MSDE использование osql.exe [MSSQL]
Rimdus © (2009-05-08 18:07:00)Всем, Добрый день!
Никак не могу понять почему следующий код отрабатывает в QueryAnalizer, а при выполнении через osql.exe выдает ошибку.
Database 'Silver' already exists. (почему-то не может удалить БД)
USE Master
GO
IF DB_ID('Silver') <> NULL
drop database Silver
GO
CREATE DATABASE Silver
ON
(NAME = Silver_dat,
FILENAME = 'd:\Silverdat.mdf',
SIZE = 25,
MAXSIZE = 100,
FILEGROWTH = 5 )
LOG ON
( NAME = 'Silver_log',
FILENAME = 'd:\Silverlog.ldf',
SIZE = 5,
MAXSIZE = 25,
FILEGROWTH = 5 )
GO
Ega23 (2009-05-12 11:44:00) [1]Для NULL не работает такое сравнение. Используй
if Value IS NULL
или
if Value IS NOT NULL
Anatoly Podgoretsky (2009-05-08 19:59:00) [2]
USE Master
GO
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'Silver')
DROP DATABASE [Silver]
Вот такой скрипт генерирует SSMS, для MSDE проверить с помощью EM
IS NULL (2009-05-08 19:38:00) [3]
> IF DB_ID('Silver') <>NULL
Rimdus (2009-05-08 19:01:00) [4]Собственно удалить можно так:
USE Master
GO
drop database Silver
GO
LOG:
1> 2> 1> 2> 3> 4> 5> Msg 3738, Level 0, State 1, Server RIMDUSBASE, Line 3
Deleting database file 'd:\Silverlog.ldf'.
Msg 3738, Level 0, State 1, Server RIMDUSBASE, Line 3
Deleting database file 'd:\Silverdat.mdf'.
1>
Получается что вызов DB_ID('Silver')равен NULL при существующей базе. Как-то это не верно (
Rimdus (2009-05-08 18:54:00) [5]Сократил. Отработало без ошибок, НО база НЕ удалилась (((.
Пользователь, под которым выполняется код - sa, и в osql и в Аналайзере конект под sa.
Anatoly Podgoretsky (2009-05-08 18:42:00) [6]Ты уверен, что именно не хочет удалять?
Сократи код до удаления и скажи результат.