云服务器建设网站,厦门微信商城网站建设,网站建设开发上线流程,重庆建设工业公司官网在 SSMS 中执行完成正常的的存储过程。
也能正常的返回想要的数据#xff0c;#xff0c;然后通过 ADO 查询时#xff0c;总是提法 某 字段不存在的问题#xff1b;
此问题困扰了一天。
例如#xff08;当然#xff0c;实际数据结构比下面举例的复杂#xff09;…在 SSMS 中执行完成正常的的存储过程。
也能正常的返回想要的数据然后通过 ADO 查询时总是提法 某 字段不存在的问题
此问题困扰了一天。
例如当然实际数据结构比下面举例的复杂
存储过程A
PROCEDURE AAAS BEGINCREATE TABLE #T01(ID INT,NAME VARCHAR(10))INSERT INTO #T01 SELECT ID,NAME FROM USERTABLESELECT * FROM #T01END
存储过程B
PROCEDURE BBAS BEGINCREATE 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 #T01SELECT USER_IDID,USER_NAMENAME, FUN_CODE FROM #TAAEND
----
在 SSMS 中执行 BB 存储过程能够正常的得到想要的数据。
但是在 ADOQUERY 中使用 SQL语句执行 BB 时总是提示字段“NAME“不存在。
后面才发现。由于 BB过程 中调整的 AA过程 它都有 #T01 这个临时表。
这个才是造成问题的根本存在。
只需要修改其中一个过程的 #T01 为其它名字即可解决问题
所以得到的结论
在某过程调用另一过程时切记两过程不要存在同名临时表名否则就会出现类似的问题