【问题标题】:SQL Server console like control for ASP.NETSQL Server 控制台,类似于 ASP.NET 的控件
【发布时间】:2009-04-25 20:13:47
【问题描述】:

我正在部署一个网站,我需要在生产服务器中运行包含在单个文件中的大型 TSQL 脚本,在该服务器中我没有对 SQL Server 控制台的完全访问权限,也无法远程连接。这些脚本是表、存储过程和视图创建的混合体。我所能做的就是运行 1 组 TSQL 语句,就像存储过程的语句一样。

我有两个选择:手动解析文件以查找 GO 的句子并在 GO 之前运行每个句子块,或者使用工具执行相同的任务。使用工具我会很快完成这项任务,但我不知道这样的工具。

你知道我可以使用什么工具吗?

我认为它必须类似于控件,带有一个编辑器,我将在其中粘贴或加载要运行的脚本,并且它能够按顺序解析和运行它们,就像 Microsoft SQL Server Management 通常所做的那样。

【问题讨论】:

    标签: asp.net sql-server deployment


    【解决方案1】:

    您可以查看 CodeProject 上有关该主题的一些文章,并可能使用其中一种工具/组件来满足您的需求?

    其中大部分都带有完整源代码,也可以作为您自己的自定义版本的起点。

    马克

    【讨论】:

      【解决方案2】:

      你有很多选择

      • 通常我在sql management studio中创建存储过程,然后将其保存为字符串,然后使用linq2sql执行存储过程,效果很好。

      • 使用 sql server smo 对象,您可以在其中真正做很多事情,例如创建数据库、表,这真的很酷,我在我的网站上创建了 1 个页面并使用它来更新数据库。 这是一个很好的链接 http://www.sqldbatips.com/showarticle.asp?ID=34

      • 您可以使用 Redgate SQL 数据比较和比较。他们真的很喜欢同步数据库,它为我节省了很多时间,而且超级简单,强烈推荐。

      希望这会有所帮助。

      【讨论】:

        【解决方案3】:

        如果这些都不起作用,那么自己编写这样的工具非常容易。只需使用 Regex.Split 拆分 GO 行上的文本,然后循环,为每个部分调用 ExecuteNonQuery。

        【讨论】:

        • 注意!如果您走这条路线,请确保“GO”没有嵌入到字符串中,或​​者您没有名为 GO_time 的列。这是一个相当安全的正则表达式。 "^\GO\w*$"
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多