SQL SERVER 2008

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

توابع تبدیل ارتقا یافته
ساعت ٢:۱۸ ‎ب.ظ روز ۱۳۸٧/٦/٢٧  کلمات کلیدی: sql server 2008 ، t-sql ، توابع تبدیل ، convert methods

توابع تبدیل نوعهای مختلف به یکدیگر ارتقا یافته است. شما میتوانید به عنوان سومین آرگومان سبک و شیوه تبدیل را تعیین کنید. شیوه 0 (صفر) همان چیزیست که در نسخه های قبل انجام میشد. این شیوه رشته ها را به کد اسکی باینری معادل ترجمه میکند و همچنین بالعکس.
شیوه های 1 و 2 انواع جدیدی هستند. این شیوه ها رشته های در مبنای 16 را به معادل مقدار باینری که معادل ارقام در مبنای 16 است تبدیل میکند و بالعکس. وقتی شما از شیوه 1 استفاده کنید رشته ورودی باید دارای پیشوند 0x باشد و اگر شیوه 2 را استفاده کنید نباید اینگونه باشد. این اتفاق در هنگامی که یک مقدار باینری را به کاراکتر تبدیل میکنید هم اتفاق می افتد. به مثالهای زیر دقت نمایید:


SELECT
  CONVERT(VARCHAR(12) , 0x49747A696B  , 1) AS [Bin to Char 1],
  CONVERT(VARBINARY(5), '0x49747A696B', 1) AS [Char to Bin 1],
  CONVERT(VARCHAR(12) , 0x49747A696B  , 2) AS [Bin to Char 2],
  CONVERT(VARBINARY(5), '49747A696B'  , 2) AS [Char to Bin 2];


این کد خروجی زیر را خواهد داشت:


Bin to Char 1 Char to Bin 1 Bin to Char 2 Char to Bin 2
------------- ------------- ------------- -------------
0x49747A696B  0x49747A696B  49747A696B    0x49747A696B


 
سازنده 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 استفاده میکند.


 
عملگرهای ترکیبی
ساعت ۳:٢۱ ‎ب.ظ روز ۱۳۸٧/٦/٢۱  کلمات کلیدی: sql server 2008 ، عملگرهای ترکیبی

عملگرهای ترکیبی مثل += و -= و *= و ... در این نسخه به امکانات زبان افزوده شده است.



DECLARE @price AS MONEY = 10.00;
SET @price += 2.00;
SELECT @price;


 
امکانات جدید T-SQL
ساعت ٢:۳٦ ‎ب.ظ روز ۱۳۸٧/٦/۱٩  کلمات کلیدی: sql server 2008 ، t-sql ، inline ، parameter

در نسخه جدید SQL Server امکانات جدیدی به زبان T-SQL افزوده شده است که به بیان آن در زیر میپردازم، در هر پست یک مشخصه جدید را خواهم نوشت :

افزودن اینکه در یک سطر تمامی متغیرها و پارامترها را تعریف و به صورت Inline آن را مقداردهی کنید.


DECLARE @i AS INT = 0, @d AS DATETIME = CURRENT_TIMESTAMP;
SELECT @i AS [@i], @d AS [@d];

 


 
معرفی وبلاگ
ساعت ٢:٠٠ ‎ب.ظ روز ۱۳۸٧/٦/۱٩  کلمات کلیدی: sql server 2008 ، data base ، it ، reporting service

با سلام به همه علاقه مندان محترم
در این وبلاگ قصد دارم مطالب مفید و به روزی را درباره SQL Server و به خصوص نسخه تازه به بازار آمده آن یعنی 2008 بیان کنم. امیدوارم بتوانم تجربیات خودم را برای دوستان محترم و علاقه مند بیان کنم تا شاید بشود که کمکی به پیشبرد صنعت IT در ایران داشته باشم.
از دوستان محترم خواهش دارم که با نظرات مفید خود من را در هر چه بهتر کردن وبلاگ یاری کنند.