微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

存储过程中有临时表生成DataSet会失败

存储过程中如果有临时表,或者有复杂的业务逻辑,此时,要生成DataSet会失败。

CREATE PROCEDURE [dbo].[usp]
AS
BEGIN
     SET NOCOUNT ON

    SELECT *
    INTO #temptable
    FROM customs

    SELECT *
    FROM #temptable
END

 

处理方法

1 首先修改存储过程,select * into  _temp from ….., 运行存储过程,生成一个中间表(_temp) ,

ALTER PROCEDURE [dbo].[usp]
AS
BEGIN
      SET NOCOUNT ON

    SELECT *
    INTO #temptable
    FROM customs

    SELECT *
    INTO _temp
    FROM #temptable
END

2 修改存储过程为 Select * from _temp,其他代码都注释掉。

ALTER PROCEDURE [dbo].[usp]
AS
BEGIN
      SET NOCOUNT ON

--    SELECT *
--    INTO #temptable
--    FROM customs
--
--    SELECT *
--    INTO _temp
--    FROM #temptable

    SELECT *
    FROM _temp

END

3 生成DataSet

 

4 还原存储过程

ALTER PROCEDURE [dbo].[usp]
AS
BEGIN
     SET NOCOUNT ON

    SELECT *
    INTO #temptable
    FROM customs

    SELECT *
    FROM #temptable
END

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐