PDA

View Full Version : فرمول نویسی در SQL-Server



Developer Programmer
جمعه 30 مرداد 1383, 18:15 عصر
:oops:
دوستان عالم و فرزانگان دانش!
در هنگامی که جدول رو طراحی (Design) میکنین... پایین پایینها قسمتی هست
به نام Formula (اگه اشتباه نکرده باشم) ... این قسمت به چه دردی میخوره؟ لطفا مثالی بزنین...
آیا میشه از این قسمت واسه ماسک کردن استفاده کرد؟
آیا امکان این هست که در قسمت Defualt Value به جای تایپ یک رشته ... مثلا تاریخ جاری رو نوشت؟ منظورم اینکه بفرض بنویسیم


Date()

و هر باریکه در این فیلد مقداری ریخته نشود .... SQL-Server اتوماتیک تاریخ جاری رو در نظر بگیرد

AminSobati
جمعه 30 مرداد 1383, 20:42 عصر
افشین جان،
در SQL Server فیلد خاصی وجود داره به اسم Computed Column. این فیلد مقدار و یا جنس مشخصی نداره، بلکه مقدار اون از یک فرمول بدست میاد و جنسش رو هم باز همون فرمول مشخص میکنه (بسته به اینکه خروجی محسبات شما چی باشه). مثلا:

CREATE TABLE MyTable(
Col1 INT,
Col2 INT,
Col3 AS Col1 * Col2,
Col4 AS Col1 + Col2
)

INSERT MyTable (Col1,Col2) VALUES (5,7)

SELECT * FROM MyTable
در این مثال دو تا Computed Column داریم: Col3 و Col4
Col3 همیشه حاصلضرب دو فیلد اول و Col4 حاصل جمعشون خواهد بود.
حالا در Enterprise Manager این جدول رو Design کن و چیزی که برای Col3 و Col4 در قسمت Formula قرار گرفته بررسی کن. برای تعریف این نوع فیلدها در Enterprise Manager کافیه فرمول مورد نظر رو اینجا وارد کنی.
برای اینکه فیلد تاریخ شما خودش تاریخ همون لحظه رو بدست بیاره و نیاز به دادن مقدار نباشه، از تابع GETDATE() استفاده کنین:


CREATE TABLE MyTable2(
Col1 INT,
Col2 DATETIME DEFAULT GETDATE()
)

INSERT MyTable2 (Col1) VALUES (1)

SELECT * FROM MyTable2

در Enterprise Manager این جدول رو Design کن و چیزی که برای Col2 در قسمتDefault Value قرار گرفته بررسی کن.

موفق باشین،
امین ثباتی MCSD