MS SQL database restore from dump — различия между версиями
Материал из Помощь клиентам хостинга
Admin (обсуждение | вклад) м (Защищена страница «MS SQL database restore from dump» [edit=sysop:move=sysop]) |
Admin (обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
Предварительно выложите дамп на хостинге, в примере указана ссылка: http://windows.leaderhost.ru/user_qwerty.sql замените её на свой путь. | Предварительно выложите дамп на хостинге, в примере указана ссылка: http://windows.leaderhost.ru/user_qwerty.sql замените её на свой путь. | ||
− | < | + | <pre> |
<%@ Page Language="C#" AutoEventWireup="true" %> | <%@ Page Language="C#" AutoEventWireup="true" %> | ||
Строка 105: | Строка 105: | ||
</html> | </html> | ||
− | </ | + | </pre> |
Текущая версия на 00:43, 7 декабря 2015
Для того чтобы восстановить базу из дампа T-SQL типа (как его сделать описано в статье Делаем дамп базы MS SQL) используйте простой скрипт, листинг которо приведен ниже.
Предварительно выложите дамп на хостинге, в примере указана ссылка: http://windows.leaderhost.ru/user_qwerty.sql замените её на свой путь.
<%@ Page Language="C#" AutoEventWireup="true" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SqlClient" %> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Net" %> <% // полный Url до T-SQL дампа который надо восстановить string fileUrl = @"http://windows.leaderhost.ru/user_qwerty.sql"; // Connection string к серверу и базе для восстановления string connectionString = @"Server=mssql1.leaderhost.ru;Database=user_qwerty;uid=user_qwerty;pwd=123456"; // Timeout of batches (in seconds) int timeout = 600; %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Executing T-SQL</title> </head> <body> <form id="form1" runat="server"> <div> </div> </form> <% SqlConnection conn = null; try { this.Response.Write(String.Format("Opening url {0}<BR>", fileUrl)); // read file WebRequest request = WebRequest.Create(fileUrl); using (StreamReader sr = new StreamReader(request.GetResponse().GetResponseStream())) { this.Response.Write("Connecting to SQL Server database...<BR>"); // Create new connection to database conn = new SqlConnection(connectionString); conn.Open(); while (!sr.EndOfStream) { StringBuilder sb = new StringBuilder(); SqlCommand cmd = conn.CreateCommand(); while (!sr.EndOfStream) { string s = sr.ReadLine(); if (s != null && s.ToUpper().Trim().Equals("GO")) { break; } sb.AppendLine(s); } // Execute T-SQL against the target database cmd.CommandText = sb.ToString(); cmd.CommandTimeout = timeout; cmd.ExecuteNonQuery(); } } this.Response.Write("T-SQL file executed successfully"); } catch (Exception ex) { this.Response.Write(String.Format("An error occured: {0}", ex.ToString())); } finally { // Close out the connection // if (conn != null) { try { conn.Close(); conn.Dispose(); } catch (Exception e) { this.Response.Write(String.Format(@"Could not close the connection. Error was {0}", e.ToString())); } } } %> </body> </html>