我的项目有一些创建临时表的要求。我需要在临时表上执行一些操作,如: -
我能够在单个语句中编写所有查询时执行所有操作,我的sql映射器文件如下所示: -
<?xml version="1.0" encoding="utf-8" ?>
<sqlMap namespace="xxx" xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<select id="GetTempTableData" resultClass="xxx" parameterClass="System.String">
Create table ##TestTable(MatterID varchar(20), ShortDesc varchar(100))
Insert into ##TestTable values('1001-101','ABC')
Insert into ##TestTable values('1001-102','XYZ')
Select * from ##TestTable
</select>
</sqlMap>
但是我要求将所有查询拆分成单独的部分,见下文: -
<?xml version="1.0" encoding="utf-8" ?>
<sqlMap namespace="xxx" xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<select id="GetTempTableData" resultClass="xxx" parameterClass="System.String">
Create table ##TestTable(MatterID varchar(20), ShortDesc varchar(100))
</select>
<insert id="InsertIntoTempTable" resultClass="xxx" parameterClass="System.String">
Insert into ##TestTable values('1001-101','ABC')
Insert into ##TestTable values('1001-102','XYZ')
</insert>
<select id="SelectFromTempTable" resultClass="xxx" parameterClass="System.String">
Select * from ##TestTable
</select>
</sqlMap>
但在第二种方法中我得到异常“无效的对象名称#TestTable”。 有人可以建议我,在这种情况下该怎么办? 快速解决方案将受到高度赞赏。
提前致谢