База данных MySQL «World» для MS SQL Server

#mysql #sql-server

#mysql #sql-сервер

Вопрос:

Кто-нибудь знает, где может быть копия базы данных MySQL «World» example database онлайн где-нибудь, совместимая с Microsoft SQL? У меня нет работающего сервера MySQL под рукой, только текстовый файл SQL, который SQL Server 2008 отклоняет.

Комментарии:

1. Почему бы не портировать ее и не сделать доступной?

2. Я не знаю, как можно было бы ее перенести, это проблема…

3. Попробуйте это: gathadams.com/2008/02/07/convert-mysql-to-ms-sql-server

Ответ №1:

Теперь это 🙂http://pastebin.com/6ATaLuNs

Я смог загрузить базу данных в свою собственную установку SQL Server, преобразовав типы данных из MySQL в версию SQL Server, удалив специфичный для MySQL код (например, спецификацию движка) и используя CHECK ограничения вместо enum ‘s. Вот моя грубая попытка преобразовать скрипт структуры таблицы:

 BEGIN TRANSACTION

CREATE TABLE city (
  ID int NOT NULL,
  Name char(35) NOT NULL DEFAULT '',
  CountryCode char(3) NOT NULL DEFAULT '',
  District char(20) NOT NULL DEFAULT '',
  Population int NOT NULL DEFAULT '0',
  PRIMARY KEY (ID)
)

CREATE TABLE country (
  Code char(3) NOT NULL DEFAULT '',
  Name char(52) NOT NULL DEFAULT '',
  Continent varchar(20) CHECK(Continent in ('Asia','Europe','North America','Africa','Oceania','Antarctica','South America')) NOT NULL DEFAULT 'Asia',
  Region char(26) NOT NULL DEFAULT '',
  SurfaceArea decimal(10,2) NOT NULL DEFAULT '0.00',
  IndepYear smallint DEFAULT NULL,
  Population int NOT NULL DEFAULT '0',
  LifeExpectancy decimal(3,1) DEFAULT NULL,
  GNP decimal(10,2) DEFAULT NULL,
  GNPOld decimal(10,2) DEFAULT NULL,
  LocalName char(45) NOT NULL DEFAULT '',
  GovernmentForm char(45) NOT NULL DEFAULT '',
  HeadOfState char(60) DEFAULT NULL,
  Capital int DEFAULT NULL,
  Code2 char(2) NOT NULL DEFAULT '',
  PRIMARY KEY (Code)
)

CREATE TABLE countrylanguage (
  CountryCode char(3) NOT NULL DEFAULT '',
  Language char(30) NOT NULL DEFAULT '',
  IsOfficial char(1) CHECK(IsOfficial IN ('T','F')) NOT NULL DEFAULT 'F',
  Percentage decimal(4,1) NOT NULL DEFAULT '0.0',
  PRIMARY KEY (CountryCode,Language)
)

COMMIT TRANSACTION
  

Вы можете запустить инструкции INSERT как есть, если внесете следующие изменения (вам придется вручную удалить INSERT инструкции, удалив CREATE TABLE код в скрипте MySQL):

  1. Удалите все экземпляры back-tick (`) (Найти-Заменить ` ничем в редакторе)
  2. Замените все экземпляры ' на '' , чтобы избежать кавычек SQL Server

Комментарии:

1. Хм, я попробую это сделать. Я знал, что существуют некоторые различия между различными вариантами SQL, но не был уверен, какие именно. Моей идеальной целью было бы просто создать резервную копию базы данных .bak, которая работала бы в готовом виде для MS SQL.