`

Sql Server 2005 遍历结果集方法之一 (已验证通过)

 
阅读更多
--创建表
USE [dbtest]
GO
/****** 对象:  Table [dbo].[tb_Users]    脚本日期: 12/09/2012 17:14:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tb_Users](
    [UserId] [int] IDENTITY(1,1) NOT NULL,
    [UserName] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [Password] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [AddTime] [datetime] NULL CONSTRAINT [DF_tb_Users_AddTime]  DEFAULT (getdate()),
    [Status] [int] NULL CONSTRAINT [DF_tb_Users_Status]  DEFAULT ((0)),
CONSTRAINT [PK_tb_Users] PRIMARY KEY CLUSTERED
(
    [UserId] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用户ID' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'tb_Users', @level2type=N'COLUMN', @level2name=N'UserId'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用户名' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'tb_Users', @level2type=N'COLUMN', @level2name=N'UserName'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用户密码' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'tb_Users', @level2type=N'COLUMN', @level2name=N'Password'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'添加时间' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'tb_Users', @level2type=N'COLUMN', @level2name=N'AddTime'


--创建表完成 

alter PROCEDURE CheckUser 
As
Begin
       declare @UserNamerecord table /*定义订单的表变量 用于遍历订单号*/
        (
         UserName  varchar(50),
         Status int,
         UserId int,
         flagID TINYINT/*这个表变量中增加一个FLAGID进行数据初始值为0的存放,然后去循环这个记录集,每循环一次,就把对应的FLAGID 的值改成1,然后再根据循环来查找满足条件等于0的情况,每循环一次,处理的记录集就会少一次,达到快速遍历,此种方式比游标 遍历效率高很多*/
        )
       declare  @totalcount int
       declare  @rownum int
insert  into @UserNamerecord  select  UserName,Status,UserId,0 from tb_Users


/*设置循环总数*/
set  @totalcount = @@ROWCOUNT
/*设置循环起始值*/
           set @rownum = 1
/*    循环*/
        while @rownum <=@totalcount
         begin
             declare @UserName varchar(50)
             declare @Status int
             declare @UserId int
              select top 1 @UserName=UserName,@UserId=UserId from @UserNamerecord where flagID=0 
             --你要完成的逻辑
                update tb_Users set Status=Status+1 where UserId=@UserId
               update @UserNamerecord set flagID=1 where UserId=@UserId--标记为已处理
              set @rownum = @rownum + 1
    print @UserName
         End
End
-------=======================
  --执行存储过程
  exec CheckUser

select UserId, UserName,Status from tb_Users
分享到:
评论

相关推荐

    sql server 2005 java驱动包

    String url = "jdbc:sqlserver://localhost:1433;databaseName=myDatabase"; String username = "myUsername"; String password = "myPassword"; Connection conn = DriverManager.getConnection(url, username,...

    sql server 2005 jar包and dll

    - 处理结果:对于查询语句,可以获取`java.sql.ResultSet`对象并遍历结果集;对于更新语句,可以检查返回的更新计数。 - 关闭资源:最后,记得关闭`ResultSet`、`Statement`和`Connection`对象以释放系统资源。 4...

    SQLServer2005 JDBC驱动程序

    5. **处理结果集**:`ResultSet`对象包含了查询的结果,你可以遍历并处理这些数据。 6. **关闭资源**:在完成数据库操作后,记得关闭`ResultSet`、`Statement`和`Connection`,以释放系统资源。 7. **身份验证**:...

    sqlserver2005jdbcdriver

    - 处理结果集:遍历`ResultSet`,获取每一行数据 4. **事务管理**: JDBC支持事务控制,包括开启事务、提交事务和回滚事务: - 开启事务:`conn.setAutoCommit(false)` - 提交事务:`conn.commit()` - 回滚...

    SQL Server 2005 Driver for JDBC

    5. 处理结果:通过ResultSet获取查询结果,并进行遍历和处理。 6. 关闭资源:最后,记得关闭Statement、ResultSet和Connection对象,释放数据库资源。 三、主要特性 1. 支持JDBC 3.0和4.0规范:提供了丰富的JDBC...

    SQL Server 2005管理对象

    SQL Server 2005管理对象 SMO 基础知识  列举服务器  连接到服务器  列举数据库  发出 DDL 或 DML 命令  遍历对象列表  备份数据库  恢复数据库  验证数据库备份  结束语

    sql server 2005 jar包

    SQL Server 2005是微软公司推出的一款关系型数据库管理系统,它在企业级数据管理、数据存储和分析中扮演着重要角色。SQL Server 2005的JAR包,顾名思义,是针对Java开发人员设计的驱动程序包,使得Java应用程序能够...

    SQL Server 2012驱动包

    -结果集处理:遍历ResultSet,获取查询结果。 -游标支持:向前、向后滚动结果集。 -批量数据上传:批量插入、更新和删除记录。 5. **性能优化** - 预编译SQL语句:使用PreparedStatement,减少解析开销。 - ...

    sql server 2005 jdbc

    SQL Server 2005 JDBC 是微软公司提供的一种用于Java应用程序与SQL Server 2005之间进行数据交互的驱动程序。JDBC(Java Database Connectivity)是Java平台中用于访问数据库的标准API,它允许Java开发者在Java代码...

    SQL Server 2005 T-SQL Recipes

    - **游标(Cursors)**:一种用于遍历查询结果集的机制,虽然使用起来灵活但通常效率较低。 #### 知识点五:性能优化技巧 - **索引管理**:合理设计和维护索引是提高查询性能的关键。包括选择合适的索引类型、定期...

    vc++ADO连接SQL Server 2005的一个简单例子

    6. 处理结果集:通过`_RecordsetPtr`对象,你可以遍历和操作查询结果。例如,打印出所有记录: ```cpp while (!rs-&gt;EOF) { printf("%s\n", rs-&gt;Fields-&gt;GetItem(0)-&gt;Value); rs-&gt;MoveNext(); } ``` 7. 关闭连接:...

    Visual C++,MFC连接SQLServer 2005

    MFC是Microsoft提供的一套C++类库,它简化了Windows应用程序的开发,而SQL Server 2005则是一个功能强大的关系型数据库管理系统。 首先,我们需要了解如何设置MFC应用程序以连接到SQL Server。这通常涉及以下步骤:...

    jdbc.rar_jdbc sqlserver2005

    【标题】"jdbc.rar_jdbc sqlserver2005" 提供的是关于使用Java数据库连接(JDBC)与Microsoft SQL Server 2005进行交互的教程或指南。JDBC是Java平台上的一个标准API,它允许Java应用程序通过编写Java代码来访问和...

    Microsoft SQL Server 2005 JDBC Driver

    Microsoft SQL Server 2005 JDBC Driver是一款由微软公司开发的Java数据库连接器,它允许Java应用程序通过Java平台标准的JDBC API与Microsoft SQL Server 2005及更高版本进行通信。这款驱动程序为Java开发者提供了...

    sql server2005驱动

    4. **结果集处理**:通过`ResultSet`对象,你可以遍历和处理查询结果。 5. **事务管理**:JDBC支持事务控制,如`conn.setAutoCommit(false)`关闭自动提交,然后通过`conn.commit()`或`conn.rollback()`来手动提交或...

    sqlserver 2000驱动

    2. **配置驱动**:在Java代码中,需要通过Class.forName()方法加载驱动,例如:`Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")`。 3. **建立连接**:使用`DriverManager.getConnection()`方法...

    MS SQL Server2005存储过程、游标、游标嵌套综合例子

    在提供的示例文件`sqlserver2005_procedure_cursor_sample_20101015.sql`中,很可能是包含了存储过程的定义,这些存储过程可能涉及到游标的使用,甚至游标嵌套,以解决特定的业务问题。通常,这样的示例会展示如何在...

    Windows环境下,Visual C++ 6.0连接SQLServer 2005数据库的ADO方法

    在Windows环境中,使用Visual C++ 6.0与SQLServer 2005数据库进行交互是一种常见的开发任务,尤其在企业级应用开发中。本文将详细介绍如何通过ActiveX Data Objects (ADO)技术来实现这种连接。 ADO是Microsoft提供...

    sqlserver驱动包

    1. **mssql-jdbc.jar**:这是主要的JDBC驱动类库,包含所有必要的类和方法,用于建立与SQL Server的连接,执行SQL语句,处理结果集等。 2. **sqljdbc_auth.dll**(可能包含):这是一个本地库,用于Windows系统上的...

    sqlserver2000sp3JDBC

    5. 处理结果:使用ResultSet获取查询结果,并遍历结果集进行数据操作。 6. 关闭资源:在完成操作后,记得关闭Statement、ResultSet和Connection,释放数据库资源。 在实际开发中,还需要注意JDBC连接池的使用,以...

Global site tag (gtag.js) - Google Analytics