SQLCMD मोड का उपयोग करके, आप इसे आसानी से स्क्रिप्ट कर सकते हैं:
:setvar dbname YourDatabaseName
:setvar dbfile N'E:\DATA\YourDatabase.mdf'
:setvar logfile N'E:\TLOG\YourDatabase_log.ldf'
USE [master]
GO
CREATE DATABASE $(dbname) ON
( FILENAME = $(dbfile) ),
( FILENAME = $(logfile) )
FOR ATTACH
GO
यह या तो sqlcmd.exe
से काम करता है कमांड लाइन से (आप वेरिएबल dbname, dbfile, logfile
के लिए मानों की आपूर्ति भी कर सकते हैं। कमांड लाइन से भी), या यह SQL सर्वर प्रबंधन स्टूडियो में काम करता है यदि आपने डिफ़ॉल्ट रूप से Tools > Options > Query Execution > by default, open new queries in SQLCMD mode
।
SQLCMD उपयोगिता और इसके सभी मापदंडों के बारे में और पढ़ेंए> एमएसडीएन पर।
पुनश्च:बेशक, SQLCMD सक्षम स्क्रिप्ट के साथ यह दृष्टिकोण BACKUP/RESTORE चक्रों के लिए भी काम करता है :-) (जैसा कि हारून द्वारा अनुशंसित है)
पीपीएस:यदि आपके पास एक अच्छा नामकरण परंपरा है, और डेटा फ़ाइल हमेशा $(dbname).mdf
होती है और लॉग फ़ाइल हमेशा $(dbname)_log.ldf
. होती है , आप इस संक्षिप्त SQLCMD स्क्रिप्ट का भी उपयोग कर सकते हैं:
:setvar dbname YourDatabaseName
USE [master]
GO
CREATE DATABASE $(dbname) ON
( FILENAME = N'E:\DATA\$(dbfile).mdf' ),
( FILENAME = N'E:\TLOG\$(logfile)_log.ldf' )
FOR ATTACH
GO
और उसके बाद बस इसे कमांड लाइन से कॉल करें:
C:\> sqlcmd.exe -S yourserver -E -i attach.sql -v dbname=YourDb1
और इसी तरह, प्रत्येक डेटाबेस के लिए एक बार आपको फिर से संलग्न करना होगा।
PPPS:यदि आप बैकअप को पुनर्स्थापित करना चाहते हैं, तो यह थोड़ा अधिक जटिल है:
:setvar dbname YourDatabaseName
USE [master]
GO
RESTORE DATABASE $(dbname)
FROM DISK = N'E:\Backup\$(dbname).bak'
WITH FILE = 1,
MOVE N'$(dbname)' TO N'E:\DATA\$(dbname).mdf',
MOVE N'$(dbname)_Log' TO N'E:\TLOG\$(dbname)_Log.ldf',
NOUNLOAD, REPLACE
GO
यह तब तक काम करता है, जब तक आप अपने .bak
. को नाम देते हैं फ़ाइलें आपके डेटाबेस नाम के समान हैं, और आप उन्हें एक निश्चित स्थान पर रखते हैं (मुझे लगता है कि E:\Backup
यहां - आवश्यकतानुसार अनुकूलित करें)।