作者:然后突然4_944 | 来源:互联网 | 2023-05-19 12:58
IBatis中#号和$号的区别:用“#”的话,ibatis会在你的变量前后加上“”(单引号),而用“$”的话,则不会加“”(单引号)#Table#à’Table’
IBatis中#号和$号的区别:
用“#”的话,ibatis会在你的变量前后加上“'”(单引号),而用“$”的话,则不会加“'”(单引号)
#Table#à’Table’ $Table$àTable
可以使用如下语句测试sql语句执行的时时间
CHECKPOINT
GO
DBCC FREEPROCCACHE
GO
DBCC DROPCLEANBUFFERS
GO
DBCC FREESYSTEMCACHE('ALL') ;
GO
SET Statistics IO ON
GO
SET Statistics TIME ON
GO
declare @b datetime,@e datetime
set @b =getdate()
/*
你要执行的sql语句
*/
set @e =getdate()
select datediff(ms,@b,@e)
SET Statistics IO OFF
GO
SET Statistics TIME OFF
GO
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
Exec sp_executesql ‘你的sql语句’
所用时间要高于 直接执行你的sql语句
使用sql2005中的CTE模式改造后的语句与sql子查询模式的语句执行时间基本相同。CTE模式略高。
正题,在IBatis中使用sql2005的CTE功能定义with语句时,测试时报错,如果此语句是共用表达式或xmlnamespace字句,那么前一个语句必须以分号结尾。关键字’WITH’附近有语法错误
在with关键词前加入;(英文输入法下的分号)解决问题。在sql2005的查询分析器中定义CTE执行没有问题。放到上面的测试sql语句执行时间时同样报如上的错误,同样的方式解决。