0

MSSQL から MYSQL への変換を検討しています。私にとって最適と思われるオプションは、MSSQL.sql を取得し、PhpMyAdmin を使用してこれをインポートすることでした。

次の投稿とリンクが役に立ちました。

SQL Server データベースを MySQL にエクスポートする方法は?

SQL Server データベースを MySQL データベースに変換する方法

http://forums.eukhost.com/f15/how-create-sql-file-mssql-database-created-sql-server-express-12514/#.UO68SHOLJ8s

しかし、これを実行しようとすると、次のエラーで失敗するようです:

SQL 構文にエラーがあります。正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

これは、次のような .sql ファイルのポイントで発生します。

USE [充電中]

行く

/******** オブジェクト: テーブル [dbo].[CountryNm] スクリプトの日付: 2013 年 1 月 10 日 13:28:42 ******/

これは、MSSQL.sql ファイルの基本的な部分のようです。ファイルから USE と GO を削除しようとしましたが、コメントで停止します。私がしていることに何か根本的な問題があるのではないかと考えているので、まだこれらを削除していませんか?

PhpMyAdmin を Format: SQL、Format-Specific Options: MSSQL に設定し、ゼロ値に AUTO_INCREMENT を使用しない: チェック済み。

よろしくお願いします

編集: MSSQL Server Management Studio スクリプト ウィザードのオプション:

ANSI パディング: True

ファイルに追加: False

エラー時にスクリプトを続行: False

UDDT を基本型に変換する: False

依存オブジェクトのスクリプトを生成: False

説明的なヘッダーを含める: True

存在しない場合を含める: False

システム制約名を含める: False

スキーマ品質オブジェクト名: True

スクリプト バインド: False

スクリプト照合: True

スクリプトのデフォルト: True

スクリプト ドロップ : False

スクリプト拡張プロパティ: True

サーバー バージョンのスクリプト: SQL Server 2008

スクリプト ログイン: False

スクリプト オブジェクト レベルのアクセス許可: False

スクリプト USE データベース: False

スクリプト変更追跡: False

スクリプト チェックの制約: True

スクリプトの日付: True

スクリプト データ圧縮オプション: False

スクリプト外部キー: True

スクリプトのフルテキスト インデックス: False

スクリプト インデックス: False

スクリプトの主キー: True

4

2 に答える 2

0

キーワードはありません。これはGO、SSMS/OSQL および他のいくつかの MS 製品専用のスクリプト スプリッターです (オプションからカスタマイズ可能)。

データベースを変更するUSEステートメントは、MYSQL で問題ないはずです。参照については、こちらを参照してください。GOセミコロンに置き換えてステートメントを終了してみてください。

docsによると、そのタイプのコメントはMysqlでも問題ありません。

これらの両方を考慮に入れて、次のステートメントを試してください。

USE [Charging];

/* Object: Table [dbo].[CountryNm] Script Date: 01/10/2013 13:28:42 */
于 2013-01-10T14:29:23.420 に答える
0

特に骨の折れる作業でしたが、最終的な目標であった MSSQL データベースを MSSQL に移行することができました。しかし、一見すると最も単純に思えた PhpMyAdmin を使用するというルートをたどることはありません。

MSSQL サーバーは分離されていたため、データベース (.BAK ファイル) のバックアップを取り、ローカル マシンに MSSQL サーバー 2008 Express をインストールする必要がありました。Windows 7 の業務用 PC に Microsoft SQL Management Studio Express を個別にインストールするのに多くの問題がありましたが、MSSQL Server 2008 の高度なサービスをインストールすることでこれを回避しました。次に、バックアップをそれに復元しました。これが必要かどうかはわかりませんが、MYSQL ODBC ドライバーもインストールしました。

次に、SQL Data Examiner 2012 をインストールしました。これにより、ローカルの MSSQL インスタンスとリモートの MYSQL DB に同時に接続できるようになりました。その後、テーブルを MYSQL DB に追加して同期を実行できます。幸いなことに、これを行うと、PhpMyAdmin インポートを使用しておそらく問題が発生していた理由が明らかになりました。そのほとんどは、MYSQL が好まない 16 列を超えるテーブルであると思われました!

まあ、エクスポートしたいくつかのテーブルで多くの列を削除できたのは、ある種の成功でしたが、同じ状況にある他の誰かに役立つことを願っています.

于 2013-01-11T00:37:39.903 に答える