我們可以通過以下幾種方式向表中插入數據。分別是INSERT VALUES,INSERT SELECT,INSERT EXEC,SELECT INTO和BULK INSERT共五種方法。為了演示,我們先在數據庫tempdb中創建表dbo.Orders,然后分別用這幾種方法向表中插入數據,下面是示例代碼。
USE tempdb;GOIF OBJECT_ID('dbo.Orders','U') IS NOT NULL DROP TABLE dbo.Orders;GO-- 創建表OrdersCREATE TABLE dbo.Orders( OrderID INT NOT NULL, OrderDate DATETIME NOT NULL CONSTRAINT DFT_OrderDate DEFAULT(CURRENT_TIMESTAMP), EmpID INT NOT NULL, CustID VARCHAR(20) NOT NULL, CONSTRAINT PK_Orders PRIMARY KEY(OrderID));-- 插入數據-- 方法一:INSERT VALUES(基于指定值的行)INSERT INTO dbo.Orders ( OrderID, OrderDate, EmpID, CustID )VALUES ( 10001, '20140917',1,'A'), (10002,'20140916',2,'B'), (10003,'20140915',3,'C'), (10004,'20140914',4,'D'); -- 方法二:INSERT SELECT(基于SELECT查詢返回行,基于已有表)INSERT INTO dbo.Orders ( OrderID, OrderDate, EmpID, CustID ) SELECT orderid,orderdate,empid,custid FROM TSQLFundamentals2008.Sales.Orders WHERE shipcountry='UK'; -- 方法三:INSERT EXEC(基于存儲過程或動態SQL返回結果,基于已有表)INSERT INTO dbo.Orders ( OrderID, OrderDate, EmpID, CustID ) EXEC TSQLFundamentals2008.dbo.usp_GetOrders @Country = N'France'; -- 方法四:SELECT INTO(創建目標表,用查詢結果填充,創建新的表)IF OBJECT_ID('dbo.Orders','U') IS NOT NULL DROP TABLE dbo.Orders;GOSELECT orderid,orderdate,empid,custid INTO dbo.OrdersFROM TSQLFundamentals2008.Sales.Orders;-- 方法五:BULK INSERT(將文本文件中的數據導入到已存在的表中,基于已有表)BULK INSERT dbo.Orders FROM 'D:/mcgrady/temp/TSQLFundamentals20090201/orders.txt'WITH ( DATAFILETYPE= 'char', --指定字符格式 FIELDTERMINATOR= ',', --指定字段終止符 ROWTERMINATOR= '/n' --指定行終止符);
新聞熱點
疑難解答