AM正在CodeIgniter中处理一个项目,并试图将我的项目数据库从mysql更改为mssql,但不幸的是,我所有在mysql中运行良好的sql代码都开始产生我不理解的错误。以下方法用于验证是否存在具有给定TIN的用户:
public function verify_user_tin( $user_tin )
{
$this->usid = $user_tin;
$this->db->select('taxpayer_id ')
->from('crirs_tin')
->where('tin', $this->usid)
->limit(1);
$query = $this->db->get();
return ( $query->num_rows() == 1 ? true : false );
}
我得到以下错误:
Error Number: HY000/208
Error Number: HY000/208
General SQL Server error: Check messages from the SQL Server [208] (severity 16) [SELECT TOP 1 "taxpayer_id" FROM "crirs_tin" WHERE "tin" = '1903798293-0001' ]
SELECT TOP 1 "taxpayer_id" FROM "crirs_tin" WHERE "tin" = '1903798293-0001'
Filename: models/Account_m.php
Line Number: 45
为什么在mssql中简单的SELECT看起来很难?请问我该怎么解决?
尝试删除表名周围的双引号,如
SELECT TOP 1 "taxpayer_id" FROM crirs_tin WHERE "tin" = '1903798293-0001'
(OR)尽管使用SQL Server特定的语法效果更好
SELECT TOP 1 [taxpayer_id] FROM crirs_tin WHERE [tin] = '1903798293-0001'