2012-03-05 3 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 서버에 대한 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

답변

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! 그것은 완벽하게 작동합니다 ..... –

관련 문제