【发布时间】:2011-06-16 03:12:55
【问题描述】:
如果我在存储过程中选择之前进行更新,是否有人知道为什么我不会得到结果集。我正在运行 MSSQL server 2005 和最新的 Microsoft JDBC 驱动程序。
相关java代码:
CallableStatement cstmt = con.prepareCall("{call dbo.sp_groups_select}");
if (cstmt.execute()) {
while (cstmt.getResultSet().next())
如果存储过程如下所示,则不会获得结果集:
CREATE PROCEDURE [dbo].[sp_groups_select] AS
update Computers set ComputerName='Foo' where ComputerName='bar';
select * from Computers;
但如果看起来像这样,我确实会得到一个结果集
CREATE PROCEDURE [dbo].[sp_groups_select] AS
select * from Computers;
update Computers set ComputerName='Foo' where ComputerName='bar';
【问题讨论】:
-
你是直接在数据库上运行的吗? (尝试查看这是 SQL-Server 问题还是 Java)
标签: java sql-server stored-procedures jdbc