سازنده Table Value
سازنده Table Value که در عبارت VALUES استفاده میشود. این بدین معنیست که میتوان فقط از یک عبارت Values برای ساخت چندین سطر استفاده کرد.
USE tempdb;
IF OBJECT_ID('dbo.Customers', 'U') IS NOT NULL DROP TABLE dbo.Customers;
CREATE TABLE dbo.Customers
(
custid INT NOT NULL,
companyname VARCHAR(25) NOT NULL,
phone VARCHAR(20) NOT NULL,
address VARCHAR(50) NOT NULL,
CONSTRAINT PK_Customers PRIMARY KEY(custid)
);
INSERT INTO dbo.Customers(custid, companyname, phone, address)
VALUES
(1, 'cust 1', '(111) 111-1111', 'address 1'),
(2, 'cust 2', '(222) 222-2222', 'address 2'),
(3, 'cust 3', '(333) 333-3333', 'address 3'),
(4, 'cust 4', '(444) 444-4444', 'address 4'),
(5, 'cust 5', '(555) 555-5555', 'address 5');
توجه داشته باشید که اگر یکی از سطرها نتواند وارد شود کل عملیات fail میشود.
یک سازنده table value میتواند برای تعریف عباراتی مثل جداول مشتق شده استفاده شود مثل :
SELECT *
FROM
(VALUES
(1, 'cust 1', '(111) 111-1111', 'address 1'),
(2, 'cust 2', '(222) 222-2222', 'address 2'),
(3, 'cust 3', '(333) 333-3333', 'address 3'),
(4, 'cust 4', '(444) 444-4444', 'address 4'),
(5, 'cust 5', '(555) 555-5555', 'address 5')
) AS C(custid, companyname, phone, address);
مثال بالا از query داخلی استفاده کرده و به عنوان 5 سطر در جدول C استفاده میکند.