用microsoft sql 2008运行sql代码

时间:2009-08-28 20:10:55

标签: sql mysql

我需要运行大约8mb的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 个答案:

答案 0 :(得分:3)

您没有,您必须将代码转换为使用SQL Server T-SQL语法。您可以使用转换工具like this one

答案 1 :(得分:2)

  1. 运行工具以自动将MySQL语句转换为T-SQL,
  2. 大量使用Find& Replace也可以完成工作。举个例子:
  3.     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 替换为:]

    查找:PRIMARY KEY(id) 替换为:CONSTRAINT PK_ [SOME IDENTIFIER] PRIMARY KEY([$ 1])

    查找:ENGINE = MyISAM AUTO_INCREMENT = 5913 DEFAULT CHARSET = latin1; 替换为:;

    更多查找和替换,您将获得此脚本,符合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])
    ) 

答案 2 :(得分:0)

乍一看,您提供的代码段对于SQL Server来说是可以接受的。我建议使用许多可用于执行SQL的工具之一来对抗现有的SQL Server实例(SQL Server Management Studio,查询分析器等)。将代码粘贴到新的查询窗口中(或使用查询打开关联的文件)并解析它以查看是否发现任何错误。一旦你调整代码以使用SQL Server 2008(假设是必要的),你应该只能执行它来创建表等。

编辑:我针对SQL Server 2005测试了你的代码,并且存在一些令人烦恼的问题,例如替换“with”,修复由撇号包围的表/列引用等。自动化工具将是你最好的方法错误。