通过脚本创建表以及如何运行脚本

问题描述:

我有几个脚本需要在我的数据库上运行。所以我有几个问题。通过脚本创建表以及如何运行脚本

当打开到数据库的连接时,我只需使用Connection,CommandText,CommandType和CommandTimeout。

第一个问题 - 有谁知道如果通过这种方法,我可以创建permantent表,而不是临时表?

其次 - 我将如何运行此文件?我可以将文件设置为参数,并在查询中运行参数?

感谢

您可以在.NET SQL连接中执行任何操作,您可以在SQL脚本中执行任何操作。就“运行文件”而言,您需要将文件文本加载到内存中,并将加载的文本作为单个命令执行。

我们在应用中做类似的事情。我们的数据库脚本存储在SQL脚本中。我们将每个文件从磁盘顺序加载到内存中并执行。

+0

如何将文本加载到内存中,类似于使用(StreamReader sr - New StreamReader(“fileName”))' – Vibralux 2010-08-23 13:41:02

+0

准确地说。或者使用File.ReadAllLines()。完整阅读文件,然后执行文本。为了更好地适应其他应用程序,请使用FileAccess.read和FileShare.Read打开FileStream,然后在FileStream上打开StreamReader。 – 2010-08-23 13:59:34

在C# -

  1. 您可以创建永久和临时表这种方式。

  2. 将该脚本作为命令对象的CommandText运行。

+0

感谢这个答复,说我需要不断更新的文件,所以我有文件的链接,而不是实际的文件,我只是通过参数运行它,还是有另一种方式? – Vibralux 2010-08-23 13:23:56

例如,从MSDN:如何设置参数的查询,

private static void UpdateDemographics(Int32 customerID, 
    string demoXml, string connectionString) 
{ 

    string commandText = "UPDATE Sales.Store SET Demographics = @demographics " 
     + "WHERE CustomerID = @ID;"; 

    using (SqlConnection connection = new SqlConnection(connectionString)) 
    { 
     SqlCommand command = new SqlCommand(commandText, connection); 
     command.Parameters.Add("@ID", SqlDbType.Int); 
     command.Parameters["@ID"].Value = customerID; 

     command.Parameters.AddWithValue("@demographics", demoXml); 

     try 
     { 
      connection.Open(); 
      Int32 rowsAffected = command.ExecuteNonQuery(); 
      Console.WriteLine("RowsAffected: {0}", rowsAffected); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 
    } 
}