SqlServer2008实例13 UPDATE

这篇博客介绍了如何在SQL Server 2008中更新大值数据类型,包括使用UPDATE命令和OPENROWSET插入或更新图片文件,以及详细阐述了FILESTREAM的启用和配置过程,用于在数据库事务控制下存储非结构化数据。
摘要由CSDN通过智能技术生成

目录

1.更新一行

2.根据FROM和WHERE子句更新新行

3.更新大值数据类型的列

4.使用OPENROWSET和BULK插入或更新图片文件

5.在维护SQL Server事务控制时向文件系统存储非结构化数据

启用和配置 FILESTREAM

6.“就地”赋值并修改数据库值


1.更新一行

    这个示例通过指定SpecialOfferID来更新一行,SpecialOfferID是表的主键。在实施这个更新之前,我们先查询计划修改的行:

use adventureworks
go

SELECT DiscountPct
FROM Sales.SpecialOffer
WHERE SpecialOfferID=10

现在实施修改操作:

UPDATE Sales.SpecialOffer
SET DiscountPct=0.15
WHERE SpecialOfferID=10

SELECT DiscountPct
FROM Sales.SpecialOffer
WHERE SpecialOfferID=10

2.根据FROM和WHERE子句更新新行

    在这个示例中,假设Production. Product表中有一个产品“Full-Finger Gloves,M",这个产品每一位顾客最多只允许购买两个。为了达到这个查询的目的,任何购物车中只要这个产品的数量超过两个,都需要立即调整为所要求的限制:

use adventureworks
go

UPDATE Sales.ShoppingCartItem
SET Quantity=2,ModifiedDate=GETDATE()
FROM Sales.ShoppingCartItem c
INNER JOIN Production.Product p ON
           c.ProductID=p.ProductID
WHERE p.Name='Full-Finger Gloves,M' AND c.Quantity>2    

3.更新大值数据类型的列

      SQL Server在其早期版本中就引入了新的大值数据类型,旨在代替不推荐的text、ntext和imaga数据类型。这些新的数据类型包括:

  • varchar(max),保存非Unicode的变长数据;
  • nvarchar(max),保存Unicode的变长数据:
  • varbinary(max),保存变长的二进制数据口

    这些数据类型能存储高达2^31-1字节的数据。
    旧的text和image数据类型的一个主要缺点是,需要使用诸如WRITETEXT和UPDATETEXT等独立的函数来操作image/text数据。使用新的大值数据类型,就可以直接使用常规的INSERT和UPDATE操作。
    插入大值数据类型的语法和普通的插入没有什么两样。但是,对于更新大值数据类型,UPDATE命令包含了一个.WRITE方法:

UPDATE <table_or_view_name>
SET column_name=.WRITE(expression,@offset,@Length)
FROM <table_source>
WHERE <search_condition>
use adventureworks
go

CREATE TABLE dbo.RecipeChapter
	(
		ChapterID		int				NOT NULL,
		Chapter			varchar(max)	NOT NULL
	)
go

INSERT dbo.RecipeChapter
	(ChapterID,Chapter)
VALUES
	(1,'At the begging of each chapter you will notice that basic concept first.')

--更新刚插入的行
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值