随笔 - 142  文章 - 2  评论 - 4  阅读 - 57303

Insert into select表复制语句

Insert是SQL中常用的语句,主要用途就是向表中添加数据。下面说说Insert子句的几种形式:

1、Insert Into Table(field1,fields2,……)values(value1,value2,……)

这种语法形式的Insert语句,一般用于向表中所有字段或者部分字段添加字符串。

如果是向表中部分字段添加数据,table后面的括号内容就不能省略。形式就是上面的形式Insert Into Table(field1,fields2,……)values(value1,value2,……);

如果是向表中所有字段添加数据,table后面的括号就可以省略。就是这样:Insert Into Table values(value1,value2,……)

2、Insert Into Table1 Select value1,value2,value3,…… from table2 where ……

这种语法形式的Insert语句,主要用于表复制。它能将Table2中的部分或者全部数据复制到Table1中。

如果我们要实现的功能是复制Table2中的一部分数据,和一部分字符串,我们只需要将Table2中所需数据和所需字符串放在Select后面。Insert语句会自动识别。

下面来个例子:

今日做收费系统的时候,我想实现这样一个功能:就是将卡表中的部分数据(最新余额)连同BLL层传过来的字符串一起复制到充值记录表中,这是就要用到上面讲的Insert Into Select 表复制语句了。

我们来看下面的实现:

 

 ''' <summary>
    ''' 向充值表中增加充值记录,添加时为True
    ''' </summary>
    ''' <param name="chargeRec">AddChargeRecord</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function AddChargeRecord(ByVal chargeRec As Entry.ChargeRecord) As Boolean
        Dim sql As String = "Insert Into ChargeRecordset select  '" &
            chargeRec.CardID & "'," & "card.newestcash" & ",'" &
            chargeRec.ChargeDate & "','" & chargeRec.ChargeTime & "','" &
            chargeRec.Actor & "'" & " from card where card.cardnumber='" & chargeRec.CardID & "'"
        Dim sqlcmd As SqlCommand = New SqlCommand(sql, con)
        Try
            con.Open()
            sqlcmd.ExecuteReader()
            Return True
        Catch ex As Exception
            con.Close()
            con = Nothing
            Return False
        End Try
        If Not IsNothing(con) Then
            con.Close()
            con = Nothing

        End If
    End Function


posted on   刘正权的博客  阅读(442)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2012年1月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4
5 6 7 8 9 10 11

点击右上角即可分享
微信分享提示