在c#中运行一个SQL脚本到某个数据库或表

本文关键字:脚本 数据库 SQL 运行 一个 | 更新日期: 2023-09-27 18:04:19

如何在c#中运行SQL脚本到某个数据库或表?这是我目前的设置:我有一个服务器,里面有多个数据库。我想在某个数据库或表上运行SQL脚本,我如何在c#中运行脚本,其中我可以定义脚本应该在哪个数据库/表中运行?由于

在c#中运行一个SQL脚本到某个数据库或表

您可以尝试USE语句。也就是说,在运行sql脚本(如

)之前尝试使用数据库名称
USE DatabaseName;
SELECT * FROM TableName;

否则,您也可以尝试在表名中关联数据库名称,如

SELECT * FROM DatabaseName.TableName;

这是许多方法中的一种,但不是最干净的:当您创建SqlCommand时,直接在其构造函数中设置ConnectionString。

SqlCommand类

SqlConnection Class(你的ConnectionString)

要从c#运行脚本,您应该像这样修改脚本。在这里,您将数据库名称定义为'Initial Catalog'。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
using System.IO;
using System.Data.SqlClient;
public partial class ExcuteScript : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    string sqlConnectionString = @"Initial Catalog=northwind;Data Source=subhash'SQLEXPRESS;Integrated Security=SSPI;Persist Security Info=False;";
    string script = File.ReadAllText(@"E:'Project Docs'TACT'northwinddata.sql");
    SqlConnection conn = new SqlConnection(sqlConnectionString);
    Server server = new Server(new ServerConnection(conn));
    server.ConnectionContext.ExecuteNonQuery(script);
    }
}

之后,你的sql脚本文件应该管理的需求。就像你需要在查询中使用哪个表一样,你也可以使用'连接其他数据库的表。'操作符语法如下:

 select * from [database].[schema].[table]  where <condition>