2012-03-05 83 views
2

我想使用codeigniter和MS-SQL。我必須使用ci_sessions表來自動將會話存儲在mssql服務器中。 codeigniter在用戶指南中提供了ci_sessions表sql,如下所示:從mysql轉換到mssql查詢

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中創建相同的表。有什麼方法可以相應的SQL的MS SQL SERVER,也爲下面的驗證碼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查詢

+0

http://msdn.microsoft.com/library/ms174979.aspx – dbrumann 2012-03-05 07:10:16

回答

3

此創建MS SQL SERVER上面MySQL查詢的同桌是對於一個例子第一個表 -

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 Constraints,Data Types

+0

謝謝Devart!它完美的工作,..... – 2012-03-08 07:07:16