запуск кода SQL с Microsoft SQL 2008 - PullRequest
0 голосов
/ 29 августа 2009

У меня есть около 8 МБ кода SQL, мне нужно запустить. это выглядит так:

/*
MySQL Data Transfer
Source Host: 10.0.0.5
Source Database: jnetdata
Target Host: 10.0.0.5
Target Database: jnetdata
Date: 5/26/2009 12:27:33 PM
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for chavrusas
-- ----------------------------
CREATE TABLE `chavrusas` (
  `id` int(11) NOT NULL auto_increment,
  `date_created` datetime default NULL,
  `luser_id` int(11) default NULL,
  `ruser_id` int(11) default NULL,
  `luser_type` varchar(50) default NULL,
  `ruser_type` varchar(50) default NULL,
  `SessionDay` varchar(250) default NULL,
  `SessionTime` datetime default NULL,
  `WeeklyReminder` tinyint(1) NOT NULL default '0',
  `reminder_phone` tinyint(1) NOT NULL default '0',
  `calling_card` varchar(50) default NULL,
  `active` tinyint(1) NOT NULL default '0',
  `notes` mediumtext,
  `ended` tinyint(1) NOT NULL default '0',
  `end_date` datetime default NULL,
  `initiated_by_student` tinyint(1) NOT NULL default '0',
  `initiated_by_volunteer` tinyint(1) NOT NULL default '0',
  `student_general_reason` varchar(50) default NULL,
  `volunteer_general_reason` varchar(50) default NULL,
  `student_reason` varchar(250) default NULL,
  `volunteer_reason` varchar(250) default NULL,
  `student_nli` tinyint(1) NOT NULL default '0',
  `volunteer_nli` tinyint(1) NOT NULL default '0',
  `jnet_initiated` tinyint(1) default '0',
  `belongs_to` varchar(50) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5913 DEFAULT CHARSET=latin1;

-- ----------------------------
-- Table structure for tbluseravailability
-- ----------------------------
CREATE TABLE `tbluseravailability` (
  `availability_id` int(11) NOT NULL auto_increment,
  `user_id` int(11) NOT NULL,
  `weekday_id` int(11) NOT NULL,
  `timeslot_id` int(11) NOT NULL,
  PRIMARY KEY  (`availability_id`)
) ENGINE=MyISAM AUTO_INCREMENT=10865 DEFAULT CHARSET=latin1;

-- ----------------------------
-- Table structure for tblusers
-- ----------------------------
CREATE TABLE `tblusers` (
  `id` int(11) NOT NULL auto_increment,
  `

и т.д.

как мне запустить его на Microsoft SQL 2008?

Ответы [ 3 ]

3 голосов
/ 29 августа 2009

Нет, вам придется конвертировать код для использования синтаксиса T-SQL в SQL Server. Вы можете использовать инструмент конвертирования, однако, как этот .

2 голосов
/ 29 августа 2009
  1. Запустить инструмент для автоматического преобразования предложений MySQL в T-SQL,
  2. Интенсивное использование Find & Replace может сделать работу тоже. Как пример:
    CREATE TABLE `chavrusas` (
    `id` int(11) NOT NULL auto_increment,
    `date_created` datetime default NULL,
    `luser_id` int(11) default NULL,
    `ruser_id` int(11) default NULL,
    `luser_type` varchar(50) default NULL,
    `ruser_type` varchar(50) default NULL,
    `SessionDay` varchar(250) default NULL,
    `SessionTime` datetime default NULL,
    `WeeklyReminder` tinyint(1) NOT NULL default '0',
    `reminder_phone` tinyint(1) NOT NULL default '0',
    `calling_card` varchar(50) default NULL,
    `active` tinyint(1) NOT NULL default '0',
    `notes` mediumtext,
    `ended` tinyint(1) NOT NULL default '0',
    `end_date` datetime default NULL,
    `initiated_by_student` tinyint(1) NOT NULL default '0',
    `initiated_by_volunteer` tinyint(1) NOT NULL default '0',
    `student_general_reason` varchar(50) default NULL,
    `volunteer_general_reason` varchar(50) default NULL,
    `student_reason` varchar(250) default NULL,
    `volunteer_reason` varchar(250) default NULL,
    `student_nli` tinyint(1) NOT NULL default '0',
    `volunteer_nli` tinyint(1) NOT NULL default '0',
    `jnet_initiated` tinyint(1) default '0',
    `belongs_to` varchar(50) default NULL,
    PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=5913 DEFAULT CHARSET=latin1;

Найти: \ s` Заменить на [

Найти: `\ s Заменить на:]

Найти: ПЕРВИЧНЫЙ КЛЮЧ (id) Заменить на: CONSTRAINT PK_ [НЕКОТОРЫЙ ИДЕНТИФИКАТОР] ПЕРВИЧНЫЙ КЛЮЧ ([$ 1])

Найти: ДВИГАТЕЛЬ = MyISAM AUTO_INCREMENT = 5913 CHARSET ПО УМОЛЧАНИЮ = latin1; Заменить на:;

еще несколько Find & Replace, и вы получите этот скрипт, совместимый с T-SQL:

CREATE TABLE [chavrusas] (
[id] INT IDENTITY(1,1) NOT NULL ,
[date_created] datetime  NULL,
[luser_id] INT NULL,
[ruser_id] INT NULL,
[luser_type] varchar(50)  NULL,
[ruser_type] varchar(50)  NULL,
[SessionDay] varchar(250)  NULL,
[SessionTime] datetime  NULL,
[WeeklyReminder] INT NOT NULL,
[reminder_phone] INT NOT NULL,
[calling_card] varchar(50)  NULL,
[active] INT NOT NULL,
[notes] TEXT,
[ended] INT NOT NULL,
[end_date] datetime  NULL,
[initiated_by_student] INT NOT NULL,
[initiated_by_volunteer] INT NOT NULL,
[student_general_reason] varchar(50)  NULL,
[volunteer_general_reason] varchar(50)  NULL,
[student_reason] varchar(250)  NULL,
[volunteer_reason] varchar(250)  NULL,
[student_nli] INT NOT NULL,
[vvolunteer_nli] INT NOT NULL,
[jnet_initiated] INT,
[belongs_to] varchar(50)  NULL,
CONSTRAINT PK_chavrusas PRIMARY KEY ([id])
) 

0 голосов
/ 29 августа 2009

На первый взгляд предоставленный фрагмент кода выглядит приемлемым для SQL Server. Я бы предложил использовать один из многих инструментов, доступных для выполнения SQL на существующем экземпляре SQL Server (SQL Server Management Studio, Query Analyzer и т. Д.). Вставьте код в новое окно запроса (или откройте связанный файл с запросом) и проанализируйте его, чтобы увидеть, если вы обнаружите какие-либо ошибки. Как только вы настроите код для работы с SQL Server 2008 (при условии, что это необходимо), вы сможете просто выполнить его для создания таблиц и тому подобного.

РЕДАКТИРОВАТЬ: я проверил ваш код на SQL Server 2005, и были некоторые проблемы, которые могли бы раздражать, такие как замена `with ', исправление ссылок на таблицы / столбцы, окруженные апострофами, и т. Д. Автоматизированный инструмент был бы вашим лучшим подходом с учетом превалирования ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...