【问题标题】:SQL Server to MySQL - but what to do with sprocs?SQL Server 到 MySQL - 但是如何处理存储过程?
【发布时间】:2011-01-21 05:28:03
【问题描述】:

我的任务是将 SQL Server 数据库转换为 MySQL 5.* 数据库。 我对数据类型之间的转换非常了解。

但是,我读到 MySQL 使用 ANSI,而不是 T-SQL,并且不支持游标。 我的问题是,我应该如何处理我的所有 SQL Server 函数和存储过程(其中一些使用游标)

我想“以正确的方式做事”。

我是否将它们全部移动到SqlCommand cmd = new SqlCommand("SELECT * FROM ...", con"); 之类的代码中,我是否将它们移动到 MySQL 的过程事物中,我应该尝试 jQuery 还是 LINQ,或者...?

前端仍将在 ASP.NET 中,但我们可能会将其重写/移动到 PHP。

【问题讨论】:

标签: mysql sql-server stored-procedures migration


【解决方案1】:

我不认为 jQuery 会有所帮助,但如果您迁移到 LINQ,您可能完全不用 SPROCS。由于我开始使用 LINQ 作为我的(轻量级)ORM,我很少使用 SPROC。

【讨论】:

  • 我对某些报告应用程序有一些令人讨厌的讨厌查询——针对这些应用程序的单个 T-SQL 选择语句可能超过一百行! LINQ 能很好地处理它(即不会呕吐)吗?
  • 我没有任何复杂的查询,但我已经构建了一些,通过将各种组件链接在一起最终变得非常复杂。根据您的查询——即,如果您正在构建 SQL 来处理查询的可选部分,您可以通过在 LINQ 中动态构建查询来简化它。也就是说,您在应用程序中有一些代码可以动态构建,例如,过滤器,只添加那些需要的组件。查询变得更简单,但您可以使用相同的功能 - 部分只是迁移到应用程序而不是数据库。
【解决方案2】:

如果光标是你的大问题,你可以在没有光标的情况下循环:

SQL Server Cursor Reference (Syntax, etc)

MySql 有一个 WHILE 循环:

http://dev.mysql.com/doc/refman/5.0/en/while-statement.html

只需选择 MIN(PK) 并遍历集合 SELECTing the MIN(PK)>currentPK 满足您的 WHERE 子句。

【讨论】:

    猜你喜欢
    • 2011-03-29
    • 2016-08-23
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 2015-05-13
    相关资源
    最近更新 更多