UPDATE 有两种基本的格式。一种是用静态数据来修改表,另一种是用其他表中的数据来修改表。下面是第一种格式:

  1. UPDATE #famousjaycees
  2. SET jc = 'Jhony cash',
  3. occupation = 'singer/songwrite',
  4. becamefamous = 1955,
  5. notes = 'began c'
  6. WHERE jc = 'Jhony caeer'

第二种格式如下:

  1. IF NOT EXISTS
  2. (SELECT *
  3. FROM sys.sysobjects
  4. WHERE [name] = 'semifamousjaycees')
  5. CREATE TABLE semifamousjaycees
  6. (
  7. jc VARCHAR (15),
  8. occupation VARCHAR (25),
  9. becamefamous INT DEFAULT 0,
  10. notes TEXT NULL
  11. )
  12.  
  13. UPDATE f
  14. SET jc = s.jc,
  15. occupations = s.occupations,
  16. becamefamous = s.becamefamous,
  17. notes = s.notes
  18. FROM famousejaycees f
  19. JOIN semifamousjaycee ON (f.becamesou = s.becamefouse)

UPDATE 的另外一种用途:使用update 检测约束。

如果使用 bulk insert 或者其他大批量的载入工具来对有insett 触发器的表进行追加数据,你们你会发现触发器不能触发。而且,即使bulk insert 不妨碍约束,也会是操作变的非常的慢。如果在载入数据时忽略约束,那么就快的多了。所以,比较的好的方法是,载入数据结束后,马上在对表一个假的update 操作。这个假的修改操作只是简单地将列值为其身的值。这样就会触发触发器约束进行检测。如果其中有包含错数数据的行,那么update失败.例如:

  1. IF NOT EXISTS
  2. (SELECT *
  3. FROM sys.sysobjects
  4. WHERE [name] = 'famousejaycees')
  5. CREATE TABLE famousejaycees
  6. (
  7. jc VARCHAR (15) CHECK (left (jc, 3) <> 'Joe'), -- establish a check constraint
  8. occupation VARCHAR (25),
  9. becamefamous INT DEFAULT 0,
  10. notes TEXT NULL
  11. )
  12. go
  13.  
  14. BULK INSERT famousejaycees
  15. FROM 'C:\famous.bcp'
  16. WITH (FIELDTERMINATOR = '|', ROWTERMINATOR = '\r\n')
  17.  
  18. --check that the miscreant is in place
  19. SELECT * FROM famousejaycees
  20.  
  21. --now do the faux update
  22.  
  23. update famousejaycees
  24. set jc=jc, occupation = occupation, becamefamous = becamefamous, notes = notes

使用update 交换行列:

  1. IF NOT EXISTS
  2. (SELECT *
  3. FROM sys.sysobjects
  4. WHERE [name] = 'sample')
  5. CREATE TABLE sample
  6. (
  7. k1 INT IDENTITY,
  8. samp1 FLOAT DEFAULT (rand () * 1000),
  9. samp2 FLOAT DEFAULT (rand () * 1000)
  10. )
  11.  
  12. SELECT * FROM sample;
  13.  
  14. DECLARE @swap FLOAT
  15.  
  16. UPDATE sample
  17. SET @swap = samp1, samp1 = samp2, samp2 = @swap

TSQL update 简单应用小总结的更多相关文章

  1. 怎样在Android实现桌面清理内存简单Widget小控件

    怎样在Android实现桌面清理内存简单Widget小控件 我们常常会看到类似于360.金山手机卫士一类的软件会带一个widget小控件,显示在桌面上,上面会显示现有内存大小,然后会带一个按键功能来一 ...

  2. 如何处理Android Studio 上面关于 update 和 commit 小箭头的消失

    问题: android studio 在关联 SVN 或者 git 服务后,会在工具栏出现 update 和 commit 小箭头 如图: 但是,有时你打开工程的时候,发现这两个小箭头却消失不见了 如 ...

  3. 输出多行字符的一个简单JAVA小程序

    public class JAVA { public static void main(String[] args) { System.out.println("-------------- ...

  4. 简单的小程序实现ATM机操作

    简单的小程序实现ATM机操作 代码如下: package Day06; import java.util.Scanner; public class TestAccount { public stat ...

  5. vue中简单的小插曲

    我们现在来学习一下vue中一些简单的小东西: 首先我们必须要引入vue.js文件哦! 1.有关文本框里的checkbox js代码: new Vue({ el:"#app", da ...

  6. python -----一个简单的小程序(监控电脑内存,cpu,硬盘)

    一个简单的小程序 用函数实现!~~ 实现: cpu 使用率大于百分之50 时  ,  C 盘容量不足5 G 时, 内存 低于2G 时. 出现以上其中一种情况,发送自动报警邮件! 主要运用 到了两个 模 ...

  7. Scratch 简单的小游戏 --- 碰碰球

    Scratch 简单的小游戏 --- 碰碰球 ================================ 积木脚本块的简要分类: 1. 角色 2. 背景 3. 角色和背景组成的场景 4. 挡板角 ...

  8. HTML5小游戏-简单抽奖小游戏

    换了新工作以后,专注前端开发,平常空闲时间也比较多,可以多钻研一下技术,写一下博客.最近在学习canvas,参考网上的slotmachine插件,用canvas实现了一个简单抽奖小游戏.       ...

  9. 3.2 Lucene实战:一个简单的小程序

    在讲解Lucene索引和检索的原理之前,我们先来实战Lucene:一个简单的小程序! 一.索引小程序 首先,new一个java project,名字叫做LuceneIndex. 然后,在project ...

随机推荐

  1. qt 零星笔记

    1.qt中堆栈对象的销毁 名字不对,我不知道该取个什么名字,暂且这样吧 在linux c编程中谈到过进程的内存映像,一个进程在内存中的映像如下

  2. 图文解说视频直播原理-zz

    本文主要介绍rtmp&hls视频直播原理,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com 现在视频直播很火 ...

  3. mysql取以当前时间为中心的任意时间段的时间戳

    例如:取当前时间后一年的时间戳 SELECT UNIX_TIMESTAMP(date_sub(curdate(),interval -1 YEAR)) SELECT UNIX_TIMESTAMP(da ...

  4. hive数据倾斜问题

    卧槽草草 来源于其它博客: 貌似我只知道group by key带来的倾斜 hive在跑数据时经常会出现数据倾斜的情况,使的作业经常reduce完成在99%后一直卡住,最后的1%花了几个小时都没跑完, ...

  5. TCP包服务器接受程序

    //功能:客户端发送TCP包,此程序接受到,将字母转换为大写,在发送到客户端#include <stdio.h>#include <sys/socket.h>#include ...

  6. 【oracle】入门学习(二)

    oracle登录身份有三种:normal 普通身份sysdba 系统管理员身份sysoper 系统操作员身份每种身份对应不同的权限 sysdba权限:●启动和关闭操作●更改数据库状态为打开/装载/备份 ...

  7. 关于利用GPG加解密的实验

    GnuPG(GNU Privacy Guard,简称:GPG)为一款免费开源的使用非对称密钥加密(asymmetric cryptography)之软件,最初由Werner Koch开发,该软件使用非 ...

  8. Temp权限导致Win10安装程序失败提示2502/2503错误

    有Win10用户在安装程序时遇到了安装失败错误代码2502/2503的问题.如图: 其原因是Windows Installer安装程序需要当前用户具有C:\Windows\Temp目录的完全控制权限, ...

  9. 【LOJ】#2432. 「POI2014」代理商 Couriers

    题解 建出一个主席树,因为出现大于区间一半的数只能有一个,就看看左右区间的增加有没有大于一半,如果有就走向那个子树,如果没有那么返回0 代码 #include <iostream> #in ...

  10. Laravel数据库配置问题

    由于项目需要,使用Laravel连接远程数据库进行开发 将默认的数据库配置信息改为远程数据库信息 在模型文件中定义了 protected $connection = 'default' 运行程序,报错 ...