<VB.Net>โค้ด Backup SQLServer
โดยปกติแล้วการ Backup หรือ Restore รวมทั้งการ Maintenance RDBMS อย่าง SQLServer หรือ Oracle ควรให้ DBA ทำที่ตัว RDBMS เอง แต่ในบางกรณีเราอาจอยากให้ admin ของ application ที่เราพัฒนาขึ้นสามารถ backup/restore database จากหน้า form ที่เราสร้างขึ้น
กรณีนี้เราสามารถใช้คำสั่ง T-SQL (Transact SQL) ได้ครับ เรามาดู syntax ของคำสั่งก่อนครับ
BACKUP DATABASE { database_name | @database_name_var } TO < backup_device > [ ,...n ] [ WITH [ BLOCKSIZE = { blocksize | @blocksize_variable } ] [ [ , ] DESCRIPTION = { 'text' | @text_variable } ] [ [ , ] DIFFERENTIAL ] [ [ , ] EXPIREDATE = { date | @date_var } | RETAINDAYS = { days | @days_var } ] [ [ , ] PASSWORD = { password | @password_variable } ] [ [ , ] FORMAT | NOFORMAT ] [ [ , ] { INIT | NOINIT } ] [ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ] [ [ , ] MEDIANAME = { media_name | @media_name_variable } ] [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ] [ [ , ] NAME = { backup_set_name | @backup_set_name_var } ] [ [ , ] { NOSKIP | SKIP } ] [ [ , ] { NOREWIND | REWIND } ] [ [ , ] { NOUNLOAD | UNLOAD } ] [ [ , ] RESTART ] [ [ , ] STATS [ = percentage ] ] ]
สำหรับรายละเอียดลองดูใน Online Book ของ SQLServer นะครับ
สมมติว่าเราต้องการ backup database ลงใน folder ที่ต้องการ คำสั่งจะประมาณนี้ครับ
BACKUP DATABASE Northwind TO DISK 'C:\Northwind.bak' WITH FORMAT, NAME = 'NorthwindBackup'
คราวนี้เราลองมาดูการเขียนโปรแกรมเลยครับ สมมติว่า ผมสร้าง Form มา 1 ฟอร์ม สร้าง ปุ่มชื่อ btnBackup ขึ้นมา 1 ปุ่ม แล้วก็สร้าง sqlConnection ชื่อ sqlConnection1 สำหรับ Form นี้ด้วยครับ
ทีนี้ก็มาดูโค้ด Private Sub btnBack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBackup.Click Dim strSQL As String Dim strCon As String strCon = "Data Source=NITHI;Initial Catalog=master;Integrated Security=True" Dim cmdBackup As SqlClient.SqlCommand = New SqlClient.SqlCommand SqlConnection1.ConnectionString = strCon SqlConnection1() Cursor = Cursors.WaitCursor Try strSQL = "BACKUP DATABASE Northwind " strSQL &= "TO DISK = 'C:\mybackup.bak' " strSQL &= "WITH FORMAT, " strSQL &= "NAME = 'myBackup'" cmdBackup.Connection = SqlConnection1 cmdBackup.CommandText = strSQL cmdBackup.ExecuteNonQuery() MsgBox("finish") Catch ex As Exception MsgBox("Error") End Try
Cursor = Cursors.Arrow SqlConnection1.Close() cmdBackup.Dispose() cmdBackup = Nothing
End Sub
ลองรันดูครับ เมื่อรันเสร็จ จะมี message box บอกว่า Finish แล้วไปดูที่ C: จะพบว่ามีไฟล์ mybackup.bak ก็เป็นอันเสร็จเรียบร้อยครับ
ถ้าเราตัองการเก็บไฟล์ backup เป็นหลายๆไฟล์ เราก็อาจจะเขียนโปรแกรมให้สร้างชื่อตามวันที่ก็ได้ครับ เช่น myBackup20070311.bak เป็นต้น
Create Date : 11 ตุลาคม 2550 |
Last Update : 11 ตุลาคม 2550 23:51:53 น. |
|
2 comments
|
Counter : 1468 Pageviews. |
|
|