我在程序中执行sql语句,有句创建了一个临时表,执行完成后,再执行一个查询,提示对象名无效‘#xx’无效,请问是什么原因? 这些语句用的是同一个连接对象!
strSql = "select a.id,autoid ,convert(decimal(30,2),iquantity) as iquantity,convert(decimal(30,2),inum) as iNum, a.Cinvcode,Corufts ,idlsid,iCheckIds, convert(smallint,0) as iOperate into #Ufida_WBBuffers from rdrecords a where 1=0";
comm.CommandText = strSql;
comm.ExecuteNonQuery();
strSql = string.Format("select * from #Ufida_WBBuffers");
comm.CommandText = strSql;
comm.ExecuteNonQuery();
如果我把这两句合并再一起去执行是不出错的,
还有,我把这两句放在数据库查询分析器中也是正常执行的。
请问是我没设置某个选项?还是写的语句有问题?请高人指点?
12 回答
暮色呼如
TA贡献1853条经验 获得超9个赞
本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft SQL Server 2000 实例断开连接时被删除。
慕雪6442864
TA贡献1812条经验 获得超5个赞
你好!
我在方法中创建了一个连接对象,所有的sql语句都使用那一个连接对象,我是跟踪用友U8单据来写的方法,所以有很多像这样的sql语句。我们之前也有这样的项目(也是这样使用临时表),好像没有提示对象名无效这个问题!
MM们
TA贡献1886条经验 获得超2个赞
你好,谢谢你的回答
使用全局临时表,应该可以解决这个错误,但是如果多个用户同时调用一个方法,会不会出现冲突呢!
本地临时表(#)不是当连接关闭时被删除吗?还有一点我们之前的项目,也是同样的语句,但却可以正确执行。
- 12 回答
- 0 关注
- 1044 浏览
添加回答
举报
0/150
提交
取消