2014-11-26 8 views
-1

Я удалил файл базы данных sql вручную (myDB.mdf и myDB_log.ldf) Когда я хочу создать базу данных с тем же именем (myDB), я получаю следующее сообщение об ошибке.Ошибка при создании базы данных sql

System.Data.SqlClient.SqlException (0x80131904): База данных 'MyDB' уже существует. Выберите другое имя базы данных.

мой код:

String str; 
SqlConnection Conn = new SqlConnection("Server=.\\SQLEXPRESS;Integrated security=true;User Instance=True;database=master"); 
str = "CREATE DATABASE myDB " + 
     "ON PRIMARY " + "(NAME = N'myDB', FILENAME = N'" + Application.StartupPath + "\\myDB.mdf' , SIZE = 5120KB , FILEGROWTH = 1024KB)" + 
     "LOG ON" + "(NAME = N'myDB_log', FILENAME = N'" + Application.StartupPath + "\\myDB_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)"; 
SqlCommand Command = new SqlCommand(str, Conn); 

как исправить это с # сценарий?

+7

Удаление файлов не будет удалять детали базы данных на сервере, вам нужно выдать 'DROP DATABASE ...' заявление –

+0

вы не должны 'Удалите базу данных SQL, просто удалив данные и файлы журналов, вы должны использовать 'DROP DATABASE', тогда это удалит его из sys.databases. –

+0

физическая база данных не существует, но логическое имя существует, я думаю – koorosh

ответ

0

Нельзя удалять файлы базы данных напрямую, поскольку они ссылаются в основной базе данных на SQL Server. Если вы можете восстановить файлы, сделайте это, а затем удалите базу данных из SQL Server Management Studio, иначе вам придется вручную удалить записи базы данных в основных таблицах базы данных!

+0

i удаленный файл базы данных сдвигом + удаление теперь я хочу создать базу данных с тем же именем удаленной базы данных. как исправить скриптом C# в visual studio – koorosh

+0

Вы можете запустить DROP DATABASE myDB; как SQL-запрос, но я не знаю, что произойдет, если файлы отсутствуют. – Lukos

+0

моя база данных не входит в список баз данных в студии управления сервером sql. Я создал базу данных в C# и привязал ее к «Источник данных =. \\ SQLEXPRESS; AttachDbFilename = | DataDirectory | \\ myDB.mdf; Интегрированная безопасность = Истина; Пользовательский экземпляр = True" – koorosh

0

Вы можете попытаться использовать для решения этой проблемы

EXEC sp_detach_db 'DbName', 'правда';

сказанное sp_detach отсоединяется база данных с skipchecks набор истинной

Смежные вопросы