【发布时间】:2023-03-28 19:13:01
【问题描述】:
我想为数据库对象生成脚本,例如
- 表格
- 观看次数
- 存储过程
- 功能
自:
在全新安装时未安装:
- Windows XP
- Windows Vista
- Windows 7
它们也不是可再分发的,它们不是一种选择(它将在客户的机器上运行)。
(编辑:截至今天,看起来 SMO 实际上是 redistributable。)
是否有任何源代码可以将 SELECTs 从 系统表 转换为相关脚本?
我将从编写存储过程、视图、触发器或用户定义函数的伪代码开始:
String GetStoredProcedureScript(String storedProcedureName)
{
return GetHelpText(storedProcedureName);
}
String GetViewScript(String viewName)
{
return GetHelpText(viewName);
}
String GetTriggerScript(String triggerName)
{
return GetHelpText(storedProcedureName);
}
String GetUserDefinedFunctionScript(String userDefinedFunctionName)
{
return GetHelpText(userDefinedFunctionName);
}
所有可以在内部使用单个辅助函数的:
String GetHelpText(String objectName)
{
String szQuery = 'EXECUTE sp_helptext '+QuotedStr(objectName);
String sql := '';
using (Recordset rs = connection.Execute(szQuery))
{
while not rs.EOF do
{
sql = sql+rs['text'];
rs.Next;
}
}
return sql;
}
编辑:感谢servicesharvest316 指出sp_helptext。这就是为什么我有一个将这些东西抽象出来的类。
【问题讨论】:
-
您使用的是哪个版本的 SQL Server?
标签: sql-server scripting sql-server-2000 ddl