Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Lampirkan beberapa database menggunakan T-SQL

Menggunakan mode SQLCMD, Anda dapat dengan mudah membuat skrip ini:

: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

Ini berfungsi baik dari sqlcmd.exe dari baris perintah (Anda bahkan dapat memberikan nilai untuk variabel dbname, dbfile, logfile dari baris perintah juga), atau berfungsi di SQL Server Management Studio jika Anda mengaktifkan Tools > Options > Query Execution > by default, open new queries in SQLCMD mode .

Baca selengkapnya tentang utilitas SQLCMD dan semua parameternya di MSDN.

PS:tentu saja, pendekatan ini dengan skrip yang diaktifkan SQLCMD juga berfungsi untuk siklus CADANGAN/KEMBALIKAN :-) (seperti yang direkomendasikan oleh Aaron)

PPS:jika Anda memiliki konvensi penamaan yang baik, dan file data selalu $(dbname).mdf dan file log selalu $(dbname)_log.ldf , Anda juga dapat menggunakan skrip SQLCMD singkat ini:

: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

lalu panggil saja ini dari baris perintah:

C:\>  sqlcmd.exe -S yourserver -E -i attach.sql -v dbname=YourDb1

dan seterusnya, sekali untuk setiap database Anda perlu melampirkan kembali.

PPPS:kalau mau restore backup, cuma sedikit lebih ribet :

: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

Ini berfungsi, selama Anda memberi nama .bak . Anda file yang sama dengan nama database Anda, dan Anda meletakkannya di lokasi tetap (saya kira E:\Backup di sini - sesuaikan sesuai kebutuhan).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sistem Manajemen Database Paling Populer di Dunia

  2. SQL:mencari string di setiap kolom varchar dalam database

  3. Mengembalikan nilai dari pernyataan INSERT di SQL Server 2008

  4. cara mengenkripsi kolom kata sandi

  5. Bagaimana Anda membuat pencarian teks lengkap wildcard terkemuka berfungsi di SQL Server?