2011-01-10 222 views
1

我从现有的存储过程创建了一个新的存储过程。我所做的只是复制旧的并改变名称。复制的SQL Server存储过程返回不同的结果

现在,当我在查询分析器中运行这两个数据时,我从原始数据中获取数据,但新数据不返回任何数据。

它可能与权限,但都设置为公共。有什么想法吗?

+1

当您直接在存储过程中运行脚本时,是否获取了任何数据? – 2011-01-10 19:05:22

+1

什么是新proc的所有者?新的过程与原始模式是否相同?你有没有看过每个查询执行计划? – pelazem 2011-01-10 19:06:40

回答

0

创建脚本并重新复制sp工作。它可能是proc的所有者或权限相关的。在我工作之后,不想再调试。

1

检查ansi-nulls值?他们可能会招致头痛。很难说没有看到代码,但作为一般调试规则;将其拆分为其基本查询,并查看引入问题的位置或从原始存储的sprocedure的结果开始区分的位置。

1

很抱歉,如果我的问题看起来很天真,但是......您是如何真正制作副本的?

我只使用SSMS与数据库一起工作到目前为止,我忘记了其他交互式工具,如果有的话。至于SSMS,在这种情况下通常只进行复制:sp_helptext [proc name],然后将输出复制到新的查询窗口,更改名称和瞧(即'执行脚本')。权限在原始proc的属性中查看,并且通常使用相同或新的脚本添加。

这似乎很微不足道,我觉得有点内疚,把它放在这里。无论如何,迄今为止,这种方法从未让我失望过。那你是什么?

对不起,这当然不会回答您已经复制的SP的特定问题。我只是想,也许你想在复制这个更基本的问题上得到一些帮助。

相关问题