【发布时间】:2017-03-03 22:43:11
【问题描述】:
我在 SQL Server 中有两个 SP。 SP1 在循环中使用不同的参数重复调用 SP2,并将 SP2 的输出保存在临时表中。
SP1 重复调用的 SP2 有一些临时表,其中包含“未命名”主键。
我知道临时表上的命名主键会导致问题,因为有时即使临时表本身被删除,它们也不会被删除。
在 SP2 中,一开始,我会检查并删除 SP2 中的任何临时表(如果存在)。
这似乎在 SSMS 中工作得很好,但是当我在 SSRS 中使用 SP1 时,有几次它会在 SP2 中引发错误,因为 PK 名称违规。
无法在对象#tempTable 中插入重复键。
这个问题有解决办法吗?
【问题讨论】:
-
如果你想在临时表中插入重复值,那你为什么要将该列设置为PK?似乎这里的答案是在创建临时表时避免指定,但如果您能给出临时表的结构和循环代码的示例,将会很有帮助。
标签: sql-server stored-procedures reporting-services ssrs-2012 temp-tables