前言:
在創建表並添加數據之後
UPDATE 語?
可用來更新表或視圖中特定行的數據
數據庫應用程序接口 (API)
支持用來更新某個結果集當前位置數據的選項
UPDATETEXT 語句
可用來更新特定的 ntext
更新操作適用於視圖和表
UPDATE 語句可以更改表或視圖中單行
UPDATE 語句包括以下主要子句
SET
包含要更新的列和每個列的新值的列表(用逗號分隔)
FROM
指定為 SET 子句中的表達式提供值的表或視圖
WHERE
指定搜索條件
此更新語句將類別 (category)
UPDATE Northwind
SET UnitPrice = UnitPrice *
WHERE CategoryID =
使用 UPDATE 更改數據
Transact
說明 UPDATE 語句有日志記錄
使用 SET 子句更改數據
SET 子句指定要更改的列和這些列的新值
UPDATE publishers SET city =
計算列的值可在更新操作中計算和使用
SET 子句中使用的表達式也可以是只返回一個值的子查詢
UPDATE OrderSummary
SET Last
(SELECT SUM(OrdDet
FROM [Order Details] AS OrdDet
JOIN Orders AS Ord
ON (OrdDet
AND Ord
)
使用 WHERE 子句更改數據
WHERE 子句執行兩種功能
指定要更新的行
如果同時指定了 FROM 子句
如果沒有指定 WHERE 子句
以下 UPDATE 語句更改其中一個運輸商的名稱
UPDATE Northwind
SET CompanyName =
WHERE CompanyName =
使用 FROM 子句更改數據
使用 FROM 子句可將數據從一個或多個表或視圖拉入要更新的表中
下例更新 titleauthor 表中 Dirk Stringer 的行
UPDATE titleauthor
SET title_id = titles
FROM titles INNER JOIN titleauthor
ON titles
INNER JOIN authors
ON titleauthor
WHERE titles
AND au_lname =
ADO
將結果集的各列綁定到程序變量上
執行查詢
執行 API 函數或方法
使用要更新的列的新數據值填充綁定的程序變量
執行以下函數或方法之一插入行
在 ADO 中
在 OLE DB 中
在 ODBC 中
使用 Transact
USE Northwind
GO
DECLARE abc CURSOR FOR
SELECT CompanyName
FROM Shippers
OPEN abc
GO
FETCH NEXT FROM abc
GO
UPDATE Shippers SET CompanyName = N
WHERE CURRENT OF abc
GO
CLOSE abc
DEALLOCATE abc
GO
有多種方法可以在替換整個值時更新行中的 ntext
在 UPDATE 語句中指定相對較短的數據
使用 Transact
ADO 應用程序可以使用 AppendChunk 方法指定較長的 ntext
OLE DB 應用程序可以使用 ISequentialStream 接口寫入新的 ntext
ODBC 應用程序可以使用 SQLPutData 的執行中的數據形式寫入新的 ntext
DB
Microsoft® SQL Server
所有其它應用程序和 Transact
以下腳本顯示同時使用 UPDATETEXT 和 PATINDEX 查找和替換 text 值中特定字符串的方法
USE Northwind
GO
CREATE TABLE TextParts (ColA INT PRIMARY KEY
GO
INSERT INTO TextParts
VALUES(
GO
DECLARE @PtrVar BINARY(
DECLARE @InsertPos INT
DECLARE @DeleteLen INT
SELECT @PtrVar = TEXTPTR(ColB)
@InsertPos = (PATINDEX(
@DeleteLen = (
PATINDEX(
( PATINDEX(
+
)
FROM TextParts
WHERE ColA =
UPDATETEXT TextParts
@PtrVar
@InsertPos
@DeleteLen
WITH LOG
GO
SELECT * FROM TextParts
GO
由最後的 SELECT 語句得出的結果集為
ColA ColB
From:http://tw.wingwit.com/Article/os/xtgl/201311/9176.html