我正在写一个存储过程,或多或少运行一个'选择。。。来自。。。我想把查询结果返回给用户,但要检查查询结果中是否有任何重复项。如果有,我想抛出一个错误。否则,应返回结果集。
总而言之,代码应该:
从表中选择
检查select查询的结果中是否存在重复项,如果发现任何错误,则抛出错误。
如果没有找到,则返回结果集。
我现在的想法是我需要做一些事情,比如:
在相关列上创建具有唯一约束的表变量
从“select…”插入到表变量中。。。来自。。。你在哪儿
如果存在重复项,则会违反约束,我将在catch子句中处理该问题
如果没有重复,我的代码将继续并从@tablevariable中选择*
一个可能的选择是ctes,但我不确定。
我的问题是这是否是解决这个问题的正确方法。
子问题:
有没有更好的办法?
以上这些会不会因为某些原因而不起作用?
我的查询是否会因为执行了两次select而显著减慢?或者是表变量的存储方式使得进行第二次选择的成本不高?
暂无答案!
目前还没有任何答案,快来回答吧!