从mysql转换为mssql查询

时间:2012-03-05 06:55:13

标签: php mysql sql-server sql-server-2008 codeigniter

我正在尝试使用codeigniter和MS-SQL。我必须使用ci_sessions表自动将会话存储在mssql服务器中。 codeigniter在用户指南中提供了ci_sessions表sql,如下所示:

CREATE TABLE IF NOT EXISTS  `ci_sessions` (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(16) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity int(10) unsigned DEFAULT 0 NOT NULL,
    user_data text NOT NULL,
    PRIMARY KEY (session_id),
    KEY `last_activity_idx` (`last_activity`)
);

。在这里,我必须在MS SQL Server中创建相同的表。什么可以是MS SQL SERVER的相应sql以及下面的captcha sql表:

CREATE TABLE captcha (
    captcha_id bigint(13) unsigned NOT NULL auto_increment,
    captcha_time int(10) unsigned NOT NULL,
    ip_address varchar(16) default '0' NOT NULL,
    word varchar(20) NOT NULL,
    PRIMARY KEY `captcha_id` (`captcha_id`),
    KEY `word` (`word`)
);

如何使用sql查询在MS SQL SERVER中创建上述mysql查询的相同表

1 个答案:

答案 0 :(得分:3)

这是第一个表的示例 -

CREATE TABLE dbo.ci_sessions (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(16) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity int DEFAULT 0 NOT NULL,
    user_data varchar(max) NOT NULL, -- use varchar(max) instead of MySQL TEXT data type
    PRIMARY KEY (session_id)
)
GO

-- Simalate MySQL 'UNSIGNED' field option
ALTER TABLE dbo.ci_sessions ADD CONSTRAINT last_activity_unsigned
  CHECK (last_activity >= 0)
GO

CREATE INDEX last_activity_idx
  ON dbo.ci_sessions (last_activity)

使用您的架构更改'dbo'架构。

查看这些参考文献 - CHECK ConstraintsData Types