SQL SERVER 2008

تجارب من در رابطه با SQL SERVER

سازنده Table Value
ساعت ۱:٢٢ ‎ب.ظ روز ۱۳۸٧/٦/٢٦  کلمات کلیدی: sql server 2008 ، data base ، 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 استفاده میکند.