DBAVisual Studio 2008.NET 3.0Visual Studio 2005Visual Studio 2010SQL Server 2008.NET 2.0.NET 3.5SQL Server 2005C# 2.0初学者C# 3.0C# 4.0中级Visual StudioSQL ServerWindows.NETC#
以编程方式生成 SQL 脚本






3.80/5 (34投票s)
如何使用 C#.NET 生成 SQL 对象脚本
引言
本文将向您展示如何使用 C#. NET 轻松生成 SQL Server 数据库对象脚本。
背景
本文对希望生成 SQL Server 数据库对象脚本(如存储过程、视图等)的开发人员有所帮助。
Using the Code
这是一种非常简单的方法……我希望您同意我的观点,即 Microsoft 产品与您的自定义应用程序集成的灵活性非常出色。 Microsoft SQL Server 提供了一个特殊的存储过程 "sp_helptext"
,该存储过程允许您获取给定对象的描述。
我编写了一个函数,用于从给定的对象获取 SQL 脚本。您只需要提供三个参数
- 连接字符串
- 对象名称
- 对象类型(我使用它来确定是否为表)
语法
exec sp_helptext 'object'
下面给出了一个示例代码。
示例代码
public string GetScript(string strConnectionString
, string strObject
, int ObjType)
{
string strScript = null;
int intCounter = 0;
if (ObjType != 0)
{
ObjSqlConnection = new SqlConnection(strConnectionString.Trim());
try
{
ObjDataSet = new DataSet();
ObjSqlCommand = new SqlCommand("exec sp_helptext
[" + strObject + "]", ObjSqlConnection);
ObjSqlDataAdapter = new SqlDataAdapter();
ObjSqlDataAdapter.SelectCommand = ObjSqlCommand;
ObjSqlDataAdapter.Fill(ObjDataSet);
foreach (DataRow ObjDataRow in ObjDataSet.Tables[0].Rows)
{
strScript += Convert.ToString(ObjDataSet.Tables[0].Rows[intCounter][0]);
intCounter++;
}
}
catch (Exception ex)
{
strScript = ex.Message.ToString();
}
finally
{
ObjSqlDataAdapter = null;
ObjSqlCommand = null;
ObjSqlConnection = null;
}
}
return strScript;
}
关注点
存储过程 sp_helptext
不允许您获取任何表描述。
结论
我希望本文对您有所帮助。祝您愉快!
历史
- 2009 年 9 月 8 日:初始发布