2010-05-06 11 views

Antwort

13

Sie verwenden müssen: sqlcmd Utility

Das sqlcmd-Dienstprogramm können Sie eingeben Transact-SQL-Anweisungen, System Prozeduren und Skriptdateien an der Eingabeaufforderung in Abfrage-Editor in SQLCMD-Modus, in eine Windows-Skriptdatei oder in einem Betriebssystem (Cmd.exe) Jobschritt eines SQL Server-Agent-Jobs. Dieses Dienstprogramm verwendet OLE DB zum Ausführen von Transact-SQL-Batches .

Dann CREATE DATABASE (Transact-SQL) verwenden die anhängen und sp_detach_db (Transact-SQL) zu tun, um die detach zu tun. Die sp_attach_db (Transact-SQL) wird in einer zukünftigen Version von Microsoft SQL Server entfernt.

+0

Sehr schön. Lief wie am Schnürchen. Müsste "named pipes" SqlCmd ausführen lassen, weiß nicht warum, aber ansonsten: chapeau! – Michel

+0

@ KM. Können Sie mir ein Beispiel geben .... – Anjali

+4

Ich habe eine Batch-Datei mit diesem Inhalt: 'sqlcmd-Usa -PASSWORD -i" N: \ SqlServer \ atachexample_database.sql "' und der Inhalt der Attachexample_database.sql ist 'CREATE DATABASE example_database ON (DATEINAME = 'C: \ Programme \ Microsoft SQL Server \ MSSQL10_50.MSQLSERVER \ MSSQL \ DATA \ example_database.mdf') FÜR ATTACH; GO GO' – Michel

0

Wenn Sie die Protokolldateinamen angeben: USE master; GO; CREATE DATABASE DBNAME ON ( FILENAME = 'C:\DBFILE.mdf') LOG ON ( FILENAME = 'C:\DBLOGFILE_log.ldf') FOR ATTACH; GO; Und abzulösen: USE master; GO; EXEC sp_detach_db 'DBNAME', 'true'; GO;

Verwandte Themen