日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-08 数据修改

發布時間:2024/4/15 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-08 数据修改 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

插入數據

T-SQL提供了幾種數據插入的語句:INSERT VALUES、INSERT SELECT、INSERT EXEC、SELECT INTO及BULK INSERT。

INSERT VALUES語句:

INSERT INTO dbo.Orders(orderid, orderdate, empid, custid)VALUES(10001, '20090212', 3, 'A');

SQL Server 2008增強了VALUES語句的功能,允許在一條語句中指定由逗號分隔開的多行記錄:

INSERT INTO dbo.Orders(orderid, orderdate, empid, custid) VALUES(10003, '20090213', 4, 'B'),(10004, '20090214', 1, 'A'),(10005, '20090213', 1, 'C'),(10006, '20090215', 3, 'C');

?在SQL Server 2008中還可以用VALUES來構建虛擬表:

SELECT * FROM ( VALUES(10003, '20090213', 4, 'B'),(10004, '20090214', 1, 'A'),(10005, '20090213', 1, 'C'),(10006, '20090215', 3, 'C') )AS O(orderid, orderdate, empid, custid);

?INSERT SELECT語句,注意,目標表必須事先存在。

INSERT INTO dbo.Orders(orderid, orderdate, empid, custid)SELECT orderid, orderdate, empid, custidFROM TSQLFundamentals2008.Sales.OrdersWHERE shipcountry = 'UK';

?INSERT EXEC語句

INSERT INTO dbo.Orders(orderid, orderdate, empid, custid)EXEC TSQLFundamentals2008.Sales.usp_getorders @country = 'France';

?SELECT INTO語句

SELECT orderid, orderdate, empid, custid INTO dbo.Orders FROM TSQLFundamentals2008.Sales.Orders;

?SELECT INTO語句會復制來源表的基本結構(包括列名、數據類型、是否允許為NULL及IDENTITY屬性)和數據。約束、索引及觸發器不會從來源表中復制過來。

BULK INSERT語句

BULK INSERT dbo.Orders FROM 'c:\temp\orders.txt'WITH (DATAFILETYPE = 'char',FIELDTERMINATOR = ',',ROWTERMINATOR = '\n');

帶有TOP選項的數據更新

以下代碼將刪除具有最小訂單ID值的50個訂單,而不是隨機刪除50行:

WITH C AS (SELECT TOP(50) *FROM dbo.OrdersORDER BY orderid ) DELETE FROM C;

OUTPUT子句

INSERT INTO dbo.T1(datacol)OUTPUT inserted.keycol, inserted.datacolSELECT lastnameFROM TSQLFundamentals2008.HR.EmployeesWHERE country = N'USA';

?OUTPUT子句為每個修改過的行返回一個輸出行。如果有一個需求,出于審核的目的,需要把修改過的行的一個子集導入一個表:

INSERT INTO dbo.ProductsAudit(productid, colname, oldval, newval)SELECT productid, N'unitprice', oldval, newvalFROM (UPDATE dbo.ProductsSET unitprice *= 1.15OUTPUT inserted.productid,deleted.unitprice AS oldval,inserted.unitprice AS newvalWHERE SupplierID = 1) AS DWHERE oldval < 20.0 AND newval >= 20.0;

?

轉載于:https://www.cnblogs.com/laixiancai/p/4594254.html

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-08 数据修改的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。