我想从SQL Server数据库中的表导入到SQLite数据库。不过,我认为文件tables.sql不完整或不正确。 从SQL Server Management Studio中,我生成一个脚本(tables.sql),只从数据库中选择一些表。这个文件看起来像这样(有两个表):从.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文件?那么这里只是两个表格的例子,实际上我有更多的表格和项目。
谢谢你的帮助。
不SQlite的真正接受SQL Server语法? – jarlh
嗯,我真的不知道。我正在寻找一种解决方案将这些数据导入到SQLite数据库中,而此时我还没有找到另一种“简单”的方法。从.sql文件导入数据似乎是最常见的方式。 编辑:现在,如果你知道我需要在语法上改变什么,那将是完美的 – LaPalme
我不太了解SQlite。 (我只是认识到SQL Server风格的语法。) – jarlh