【问题标题】:Importing .sql file into SQL Server 2012将 .sql 文件导入 SQL Server 2012
【发布时间】:2017-03-16 10:35:00
【问题描述】:

我有带有 .sql 的数据库,我想使用 Management Studio 将该 .sql 文件导入 SQL Server 2012。

当我尝试导入数据时,出现错误:

Msg 156, Level 15, State 1, Line 76
Incorrect syntax near the keyword 'NOT'.


[![enter image description here][1]][1]


 CREATE TABLE ct_bookings(
   id int NOT NULL,
   order_id bigint NOT NULL,
   client_id bigint NOT NULL,
   order_date date NOT NULL,
   booking_date_time datetime NOT NULL,
   service_id int NOT NULL,
   method_id int NOT NULL,
   method_unit_id int NOT NULL,
   method_unit_qty int NOT NULL,
   method_unit_qty_rate double NOT NULL,
   booking_status varchar(10) not null    ('A','C','R','CC','CS','CO','MN','RS') NOT NULL COMMENT 'A=active, C=confirm,   R=Reject, CC=Cancel by Client, CS=Cancel by service   provider,CO=Completed,MN=MARK AS NOSHOW',
  `reject_reason` varchar(200) NOT NULL,
  `reminder_status` enum('0','1') NOT NULL DEFAULT '0' COMMENT '0=Email Not    Sent,1=Email Sent',
  `lastmodify` datetime NOT NULL,
  `read_status` enum('R','U') NOT NULL DEFAULT 'U'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我该如何解决这个问题?

请帮帮我。提前致谢。

【问题讨论】:

  • 您正在将MySQL 脚本运行到SQL Server 引擎中。 !
  • 是的,我正在将 mysql 导入到 sql server
  • 发布失败的特定代码部分
  • 我正在导入 gms.sql 文件中的整个数据库。不执行单个查询。

标签: sql sql-server sql-server-2012


【解决方案1】:

MySQL:-

CREATE TABLE ct_addon_service_rate(
  id int(11) NOT NULL,
  addon_service_id int(11) NOT NULL,
  unit varchar(20) NOT NULL,
  rules VARCHAR(10) NOT NULL CHECK (rules IN('E', 'G')),
  rate DOUBLE NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

等于SQL Server:-

Create TABLE ct_addon_service_rate (
  id int NOT NULL,
  addon_service_id int NOT NULL,
  unit varchar(20) NOT NULL,
  rules char(1) not null,
  rate FLOAT(25) NOT NULL,
  CHECK (rules in ('E', 'G'))
)

更新:-

MySQL:-

CREATE TABLE ct_bookings(
   id int NOT NULL,
   order_id bigint NOT NULL,
   client_id bigint NOT NULL,
   order_date date NOT NULL,
   booking_date_time datetime NOT NULL,
   service_id int NOT NULL,
   method_id int NOT NULL,
   method_unit_id int NOT NULL,
   method_unit_qty int NOT NULL,
   method_unit_qty_rate double NOT NULL,
   booking_status varchar(10) not null    ('A','C','R','CC','CS','CO','MN','RS') NOT NULL COMMENT 'A=active, C=confirm,   R=Reject, CC=Cancel by Client, CS=Cancel by service   provider,CO=Completed,MN=MARK AS NOSHOW',
  `reject_reason` varchar(200) NOT NULL,
  `reminder_status` enum('0','1') NOT NULL DEFAULT '0' COMMENT '0=Email Not    Sent,1=Email Sent',
  `lastmodify` datetime NOT NULL,
  `read_status` enum('R','U') NOT NULL DEFAULT 'U'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

等于SQL Server:-

CREATE TABLE ct_bookings(
   id int NOT NULL,
   order_id bigint NOT NULL,
   client_id bigint NOT NULL,
   order_date date NOT NULL,
   booking_date_time datetime NOT NULL,
   service_id int NOT NULL,
   method_id int NOT NULL,
   method_unit_id int NOT NULL,
   method_unit_qty int NOT NULL,
   method_unit_qty_rate float(25) NOT NULL,
   booking_status varchar(10) not null  check  (booking_status in ('A','C','R','CC','CS','CO','MN','RS')),
    /*COMMENT 'A=active, C=confirm,   R=Reject, CC=Cancel by Client, CS=Cancel by service   provider,CO=Completed,MN=MARK AS NOSHOW', */
  reject_reason varchar(200) NOT NULL,
  reminder_status char(1)NOT NULL check (reminder_status in ('0','1'))  DEFAULT '0', /*COMMENT '0=Email Not    Sent,1=Email Sent', */
  lastmodify datetime NOT NULL,
  read_status char(1) NOT NULL check (read_status in ('R','U')) DEFAULT 'U'
) 

更新 2:-

MySQL:-

CREATE TABLE ct_email_templates (
  id int NOT NULL,
  email_subject varchar(200) COLLATE Latin1_General_CI_AS NOT NULL,
  email_message text COLLATE Latin1_General_CI_AS NOT NULL,
  default_message text COLLATE Latin1_General_CI_AS NOT NULL,
  email_template_status varchar(10) NOT NULL check(email_template_status in('E','D')) COLLATE Latin1_General_CI_AS,
  email_template_type varchar(10) check(email_template_type IN('A','C','R','CC','RS','RM')) COLLATE Latin1_General_CI_AS NOT NULL COMMENT 'A=active, C=confirm, R=Reject, CC=Cancel by Client, RS=Reschedule, RM=Reminder',
  user_type` enum('A','C') COLLATE utf8_unicode_ci NOT NULL COMMENT 'A=Admin,C=client'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

等于SQL Server:-

CREATE TABLE ct_email_templates (
  id int NOT NULL,
  email_subject varchar(200) COLLATE Latin1_General_CI_AS NOT NULL,
  email_message text COLLATE Latin1_General_CI_AS NOT NULL,
  default_message text COLLATE Latin1_General_CI_AS NOT NULL,
  email_template_status varchar(10) COLLATE Latin1_General_CI_AS NOT NULL check(email_template_status in('E','D')) ,
  email_template_type varchar(10) COLLATE Latin1_General_CI_AS check(email_template_type IN('A','C','R','CC','RS','RM'))  NOT NULL, /*COMMENT 'A=active, C=confirm, R=Reject, CC=Cancel by Client, RS=Reschedule, RM=Reminder',
  user_type` enum('A','C') COLLATE utf8_unicode_ci NOT NULL COMMENT 'A=Admin,C=client' */
)

【讨论】:

  • 谢谢你的解决方案,我已经解决了。您能否再次检查已编辑的问题。
  • 我们不能在这里像 (A=active) 这样赋值吗?
  • 不,它只是一个注释,它对文档或注释很有用......等
  • 好的,我们如何在 (email_template_status varchar(10) NOT NULL check(email_template_status in('E','D')) COLLATE Latin1_General_CI_AS) 上写这个
  • 给我看全部的代码,你得到的错误是什么!?
猜你喜欢
  • 1970-01-01
  • 2012-05-25
  • 2016-02-27
  • 2013-05-27
  • 2015-04-10
  • 2012-06-16
  • 2016-01-31
  • 1970-01-01
  • 2010-10-27
相关资源
最近更新 更多