ADOQuery 查询MSSQL存储过程一个莫名其妙的错误;

在 SSMS 中执行完成正常的的存储过程。

也能正常的返回想要的数据,,然后通过 ADO 查询时,总是提法 某 字段不存在的问题;

此问题困扰了一天。

例如(当然,实际数据结构比下面举例的复杂):

存储过程A:

PROCEDURE  AA

AS BEGIN

        CREATE TABLE #T01(ID INT,NAME VARCHAR(10))

        INSERT INTO #T01 SELECT ID,NAME FROM USERTABLE

        SELECT * FROM #T01

END 

存储过程B:

PROCEDURE  BB

AS BEGIN

        CREATE TABLE #TAA(ID INT,NAME VARCHAR(10))

        CREATE TABLE #T01(USER_ID INT,USER_NAME,VARCHAR(10),FUN_CODE VARCHAR(10))

        INSERT INTO #TAA EXEC AA  --调AA存储过程,将查询结果放入 #TAA 中

        INSERT INTO #T01

        SELECT USER_ID=ID,USER_NAME=NAME, FUN_CODE ='' FROM #TAA

END 

----

在 SSMS 中,执行 BB 存储过程,能够正常的得到想要的数据。

但是在 ADOQUERY 中使用 SQL语句执行 BB 时,总是提示字段“NAME“不存在

后面才发现。由于 BB过程 中调整的 AA过程 它都有 #T01 这个临时表。

这个才是造成问题的根本存在。

只需要修改其中一个过程的 #T01 为其它名字即可解决问题;

所以得到的结论:

在某过程调用另一过程时,切记两过程不要存在同名临时表名,否则就会出现类似的问题;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值