我在存储过程中定义了一个临时表。过程中,使用了类似select * from #MyTable where PID = @PID的语句判断临时表中是否已经存在目标记录,有则做Update操作,无则新增加记录。在过程最后,使用select语句一次性返回临时表中的所有记录。我的问题是:用于判断目的的select语句的结果也会出现在最后的结果集,但这不是我所需要的,我只需要最后一次性返回的记录。另外,我在SQL查询分析器中执行存储过程时,最后一次性返回的记录数比预期的少,只有10条左右,而实际应该有上百条记录的。谁能帮帮我啊,建议和思路也行啊。谢谢!
解决方案 »
- 如何在sql server 提取下一条数据
- SQL SERVER 一个关于数据`leijia
- 报告版主,每次打开一次csdn论坛的任何一页,都会出现百合婚恋网(www.baihe.com),如何可以清除呀?
- 數據庫命名規格﹖
- 不知道这个SQL怎么写了。也不知道怎么取名。暂且叫做【分组取前top N】的问题
- SQL连接问题
- GROUP BY出错,如何使用?谢谢!
- 怎么去掉字段中的前两位?把8613499999999更新为13499999999
- 寸储过程参数问题???
- SQL Server启动时显示登陆失败的错误该如何处理... 在线等待!!!
- 求教:关于EXEC sp_executesql @sql 的问题
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'admin' 登录失败。原因: 未与信任 SQL Server 连
if exists(select * from #MyTable where PID = @P)我在SQL查询分析器中执行存储过程时,最后一次性返回的记录数比预期的少,只有10条左右,而实际应该有上百条记录的。这个要看你具体写的语句了!
if exists(select 1 from #MyTable where PID = @P)
sql语句(如果#MyTable存在记录机会越大,性能会更好),其实判断#MyTable是否存在记录也是耗用资源的。 这样写后也可同时避免了判断返回数据集的问题。
update #MyTable set ... where PID = @PID
if @@RowCount<=0 --表示没有记录,需要插入
insert into #MyTable ()
select * from #MyTable