2012-03-05 22 views
2

codeigniterとMS-SQLを使用しようとしています。私は自動的にmssqlサーバーにセッションを格納するためにci_sessionsテーブルを使用する必要があります。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`) 
); 

:CodeIgniterでは、以下のように、ユーザガイドのci_sessionsテーブルSQLを提供しています。ここでは、私は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

答えて

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!それは完璧に..... –

関連する問題