2017-04-13 20 views
0

SQLiteデータベースのテーブルからSQLiteデータベースにテーブルをインポートしようとしています。それにもかかわらず、私は、ファイルtables.sqlが完全ではない、または正しく書かれていると思います。 SQL Server Management Studioから、データベースから一部のテーブルのみを選択するスクリプト(tables.sql)を生成しました。このファイルには、(2つのテーブルが)次のようになります。.sqlからsqliteへのテーブルのインポート、不完全なSQL

USE [MYDATABASE] 
GO 
SET IDENTITY_INSERT [dbo].[TABLE_ONE] ON 

INSERT [dbo].[TABLE_ONE] ([TABLE_ONE_ID], [TABLE_ONE_MNEMO], [TABLE_ONE_DESC], [AUTO_ANALYSIS], [SCOPE_LEVEL], [IN_ABV], [TABLE_ONE_ORDER], [REPORT_ATA]) VALUES (37, N'GENERAL', N'GENERAL', N'N', 3, 0, 1, N'GEN') 
... 
GO 
... 
INSERT [dbo].[TEST_POINT_TYPE] ([TEST_POINT_TYPE_ID], [TEST_POINT_TYPE_MNEMO], [TEST_POINT_TYPE_DESC], [AUTO_ANALYSIS], [SCOPE_LEVEL], [IN_PATM], [TEST_POINT_TYPE_ORDER], [REPORT_ATA]) VALUES (207, N'LDMCR', N'LDMCR', N'N', 1, 1, 999, N'70') 
SET IDENTITY_INSERT [dbo].[TABLE_ONE] OFF 
SET IDENTITY_INSERT [dbo].[TABLE_TWO] ON 

INSERT [dbo].[TABLE_TWO] ([TBT_ID], [TABLE_ONE_ID], [SUBPROGRAM_ID], [VALUE], [DESCRIPTION], [ETE], [SUBPROGRAM_CONTEXT], [IS_HOHO], [TEST_VISIBLE], [COMPLETION_ONLY], [CUPTER_NM_CHECKED_WORD], [CUPTER_NM_CHECKED_MAIN], [CUPTER_NM_CHECKED_MORE]) VALUES (1, NULL, 5, NULL, N'Air conditioning checks', N'21', NULL, NULL, NULL, NULL, NULL, NULL, NULL) 
... 
GO 
... 
INSERT [dbo].[TABLE_TWO] ([TBT_ID], [TABLE_ONE_ID], [SUBPROGRAM_ID], [VALUE], [DESCRIPTION], [ETE], [SUBPROGRAM_CONTEXT], [IS_HOHO], [TEST_VISIBLE], [COMPLETION_ONLY], [CUPTER_NM_CHECKED_WORD], [CUPTER_NM_CHECKED_MAIN], [CUPTER_NM_CHECKED_MORE]) VALUES (39, NULL, 5, NULL, N'Auto call-outs', N'31', NULL, NULL, NULL, NULL, NULL, NULL, NULL) 
SET IDENTITY_INSERT [dbo].[TABLE_TWO] OFF 

を今、私は次のコマンドをしようとした場合:

cat tables.sql | sqlite3 MYDATABASE.db 

を私は次の文

Error: incomplete SQL: ▒▒U 

は、私が何かあるとしていますtables.sqlファイルに欠落しており、最初にこれを追加しようとしました:

CREATE DATABASE IF NOT EXISTS [MYDATABASE] 

ただし、何も変更されません。 tables.sqlファイルを完成させるために何を変更/追加することができますか?次に、ここには2つのテーブルの例がありますが、実際にはもっと多くのテーブルとアイテムがあります。

ありがとうございました。

+0

んSQLiteは本当にそのSQL Serverの構文を受け入れますか? – jarlh

+0

まあ、私は本当に知りません。私はこのデータをSQLiteデータベースにインポートするソリューションを探していますが、私はこの時点で別の「簡単な」方法を見つけることはできませんでした。 .sqlファイルからデータをインポートするのが最も一般的な方法です。 編集:構文で何を変えなければならないか分かっていれば、それは完璧になるでしょう – LaPalme

+0

私はSQliteをよく知りません。 (私はSQL Serverスタイルの構文を認識したばかりです) – jarlh

答えて

0

このスクリプトでは、SQLiteでサポートされていないSQL Server固有の機能が多数使用されています。

SQLiteにはCREATE DATABASE,USE,SETまたはGOがありません。削除してください。

SQLiteにはスキーマはありません(SQL Serverと同じ方法ではなく、接続されたデータベースのみ)。すべての[dbo].接頭辞を削除します。

SQLite文字列は常にUnicodeです。接頭辞Nを削除します。

SQLiteは、SQL Serverの[/]の引用をサポートしています。あなたが示されたコードには▒▒Uはありませんので、他の問題がある可能性が高い

...

+0

ありがとうCL。私はそれをやろうとします。何百もの行があるので、すべての変更を行うためのスクリプトを書いています。最後に、それは構文の問題だと私は理解しています。 – LaPalme

+0

ご協力いただきありがとうございます。できます。今、別のアドバイスを追加したいのですが、誰かがそれを必要とするならば、dos2unixコマンドを使ってtables.sqlファイルを変換しなければなりません。 – LaPalme

関連する問題