اجرای یک Script حاوی دستورات Go در سی شارپ
نویسنده: شاهین کیاست
تاریخ: ۱۳۹۲/۰۱/۰۳ ۱۲:۱۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
private static string GetScript()
{
string path = AppDomain.CurrentDomain.BaseDirectory +
@"Scripts\script.sql";
var file = new FileInfo(path);
string script = file.OpenText().ReadToEnd();
return script;
}
private static void ExecuteScript()
{
string script = GetScript();
//split the script on "GO" commands
var splitter = new[] {"\r\nGO\r\n"};
string[] commandTexts = script.Split(splitter,
StringSplitOptions.RemoveEmptyEntries);
foreach (string commandText in commandTexts)
{
using (var ctx = new DbContext())
{
if (!string.IsNullOrEmpty(commandText))
{
ctx.Database.ExecuteSqlCommand(commandText);
}
}
}
}Server server = new Server(new ServerConnection() { ConnectionString = cnnStr });
server.ConnectionContext.ExecuteNonQuery(sql);var commandTexts=Regex.Split(script,@"\s*GO\s+");
foreach(var commandText in commandTexts)
{
// Execution Code
}USE [MyDB] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[GO AND EAT]( [Id] [int] IDENTITY(1,1) NOT NULL, [MyVal] [decimal](18, 0) NOT NULL, ) ON [PRIMARY] GO