最新消息:

MSSQL基本语法增删改查之三:改

编程 eben 771浏览 0评论

前面的几篇文章说到sql的一些基础概念,以及对象层面和数据层面的增和删,今天说下“改”。

数据库的“改”即修改,我们还是从两个层面来说:

MSSQL基本语法增删改查之三:改-1

1.对象层面:数据库对象的修改关键字是Alter ,如:

alter table 表名 add 字段名 类型 默认值 —-增加表字段

alter table 表名 alter column 字段名 类型 默认值 —-修改某字段

alter table 表名 drop column 字段名 —-删除某个表字段

alter view 视图名 as …… —-修改视图

alter trigger 触发器名 on 表名 as …… —修改触发器

alter proc 存储过程名 as …… —-修改存储过程

以上就是常用的修改对象的语句,实际上和create用法有些类似,但是alter必须在对象是已经存在的基础上执行的,不然就会报错。

MSSQL基本语法增删改查之三:改-2

2.数据层面:数据层面的修改,关键字是update,如:

update 表名 set 字段名 =N …… where ……

上面语句中的N可以是常量值,也可以是个其他字段,也可以是个表达式,但是必须和字段名的数据类型是匹配的。

怎么理解呢,比如我们刚刚给表#temp加个字段memo,现在做个测试:

(1)更新memo列的值为123:

UPDATE #temp SET memo =’123′

SELECT * FROM #temp

MSSQL基本语法增删改查之三:改-3

(2)单独更新第三行的memo为456

UPDATE #temp SET memo =’456′ WHERE xh=3

SELECT * FROM #temp

MSSQL基本语法增删改查之三:改-4

(3)单独将第三行的memo改为当前的时间

UPDATE #temp SET memo =CONVERT(VARCHAR(20),GETDATE(),120) WHERE xh=3

SELECT * FROM #temp

MSSQL基本语法增删改查之三:改-5

上面的语句中convert是个格式转换的公式,这个表达式的意思就是获取当前的时间,并转化为varchar(20)的格式。

第(2)、(3)点中都用到了where语句,这一点和delete类似,就是可以与where联用,单独指定更新哪些行。

最后再说一下,update的执行顺序,其实是先执行delete,再执行insert,这两个前面都讲到了具体的机制。由于update是一行一行的执行,因此该操作也是会触发表里的触发器的。

最后,update语句和delete语句一样,执行语句的时候也要注意安全,如果update的时候条件没加好,很容易出错,谨慎操作!

转载请注明:落伍老站长 » MSSQL基本语法增删改查之三:改

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址