SQL server2014数据库存储过程 实现游标循环读取 循环插入数据

USE [Text]
GO
/****** Object:  StoredProcedure [dbo].[TT]    Script Date: 2020/3/6 11:37:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:        <Author,,Name>
-- Create date: <Create Date,,>
-- Description:    <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[TT]
@IID INT

AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
    DECLARE @ID INT ,@NAME varchar(50)
DECLARE My_Cursor CURSOR --定义游标
FOR (SELECT * FROM Table2 WHERE ID=@IID) --查出需要的集合放到游标中
OPEN My_Cursor; --打开游标
FETCH NEXT FROM My_Cursor INTO @ID,@NAME; --读取第一行数据(将MemberAccount表中的UserId放到@UserId变量中)
WHILE @@FETCH_STATUS = 0
    BEGIN
      PRINT @NAME; --打印数据(打印MemberAccount表中的UserId)
        INSERT INTO Table3 VALUES(@NAME)
       FETCH NEXT FROM My_Cursor INTO @ID,@NAME;
    END

CLOSE My_Cursor; --关闭游标
DEALLOCATE My_Cursor; --释放游标
END

c# 调用代码:

 // 数据库连接字符串
            string connStr = "数据库连接字符串“;
            // 创建Connection 对象
            SqlConnection conn = new SqlConnection(connStr);
            // 打开数据库连接
            conn.Open();
            SqlCommand cmd = new SqlCommand("TT", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@IID", SqlDbType.Int) { Value = 1 });
            //如cmd.Parameters.Add(new SqlParameter("@riqi", SqlDbType.DateTime, 8));
            //把具体的值传给输入参数
            cmd.Parameters["@IID"].Value = 2;
            //如cmd.Parameters["@riqi"].Value = this.textBox1.Text;
            //执行存储过程
            cmd.ExecuteNonQuery();

原文地址:https://www.cnblogs.com/huandong963/p/12425712.html

时间: 2024-08-03 15:22:55

SQL server2014数据库存储过程 实现游标循环读取 循环插入数据的相关文章

C#与sql server数据库存储过程的操作实例

通过这几天的学习和实际操作,把C#与sql server数据库存储过程的操作搞清楚了. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Windows.

java.sql.SQLException: 无法从套接字读取更多的数据(mybatis 插入时)

今天  做mybatis 的批量插入的时候  出现 java.sql.SQLException: 无法从套接字读取更多的数据   的错误 解决方法: 由于批量插入的数据过大,需要分批次的插入. List<IdentificationData> insertList = new ArrayList<IdentificationData>(); for (IdentificationData domain : list) { insertList.add(domain); //批量插入

开发中遇到的问题---【使用mybatis时 有一个sql查询不到结果 日志也显示查询为o 但是从日志中取出执行的sql到数据库客户端手动执行,可以查到数据】

问题:使用mybatis时 有一个sql查询不到结果 日志也显示查询为o 但是从日志中取出执行的sql到数据库客户端手动执行,可以查到数据: 原因:MyBatis看到 #{}会认为你在给sql中的变量赋值,就像JDBC编程中给问号赋值一样(自动在前后加单引号)也就是说,他把你传入的字符串并没有当做多个值,而是当做一个大的字符串,所以查询不到值 而MyBatis看到${}的时候会直接将之替换成变量的值而不做任何处理: 解决方案:将查询条件中的“#”替换成“$”. <select id="fi

Windows Phone本地数据库(SQLCE):12、插入数据(翻译)

这是“windows phone mango本地数据库(sqlce)”系列短片文章的第十二篇. 为了让你开始在Windows Phone Mango中使用数据库,这一系列短片文章将覆盖所有你需要知道的知识点.我将谈谈在windows phone mango本地数据库里怎么插入数据. 插入数据到数据库是一个两个步骤的过程.首先使用InsertOnSubmit 方法添加一个对象到DataContext,然后调用DataContext的SubmitChanges 方法来将保存数据作为数据库中的行. 注

SQL Server数据库存储过程中拼接字符串注意的问题

在SQL Server数据库中书写复杂的存储过程时,一般的做法是拼接字符串,最后使用EXEC sp_executesql '拼接的字符串' 查询出结果. 先看一段代码: 1 -- ============================================= 2 -- Author: XXX 3 -- Create date: 2014-09-19 4 -- Description: 获取学生列表信息 5 -- ====================================

访问sql server2014数据库

以前编写有关链接数据库,已经实现增删改查功能都比较繁琐和冗长.本篇文章使用了比较简单明了de方式,实现这些功能 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient;//第一步:引用与sql相关的命名空间 using System.Data;//引用表的命名空间 public class SqlHelper {     pu

sql server2014数据库备份还原

创建数据库 create database testdatabase 切换数据库: use testdatabase use master 备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack5', 'e:\sqlservertest.dat' 删除备份数据的device,则备份文件也会相应删除: sp_dropdevice 'testBack5' --- 开始 备份 backup d

【数据库MSSQL2008】使用表值参数快速插入数据

项目中需要将解析原始文件获得的10W左右的数据插入数据库,如果使用原始的sql语句"insert into",无论是循环插入还是批量插入,不是效率慢就是系统内存消耗殆尽,无法满足需求. 经网上查阅,发现mssql从2008起开始,数据库支持以表值参数的方式批量插入数据,使用该方式,一次性插入10W条数据也不过是3-5秒钟的事情,一切开始变得美好起来~ 使用表值参数批量插入数据的步骤和要点: 1.数据源需要是DataTable形式,且字段顺序必须和相应的数据库的数据表的字段属性.顺序一致

向Sql Server数据库中导入固定格式的txt文本数据

文本数据量比较大的时候,一条条的输入基本不可能,写个程序来中转一下也是很麻烦,幸运的是sql server提供了比较简洁的方法. Bulk insert 表名 from 'C:\你的文本文件.txt' with (FieldterMinator ='以什么符号分割数据', RowterMinator= '以什么符号加\n结尾') --\n是回车的意思,就是回车前面是什么符号,如果没符号直接单引号\n Bulk insert #temp from 'C:\test.txt' with (Field