آموزش Enterprise Manager
میتوان گفت قلب Sql Server است. در Enterprise Manager شما میتوانید یک اتصال به سرور Sql برقرار کنید . table بسازید. User تعریف کنید و.....
علامت فلش سبز نمایانگر فعال بودن سرور است.
سرور میتواند local باشد مانند بالا و یا یک Sqlserver باشد برروی یک سرور . برای ایجاد یک سرور جدید یا به عبارت دیگر وصل شدن client (ویندوز 98) به یک سرور دیگر بر روی یکی Microsoft Sql Server یا SQL Server Group و یا برروی سرور موجود کلیک سمت راست کرده و گزینه New Sql Server Registratin را انتخاب کنید. سپس کلید next را انتخاب کنید. سپس در منوی بعدی در available Server نام سرور خود را تایپ کنید . (نام سرور SQL خود را که برروی ویندوز 2000 خود نصب کرده اید) و بعد کلید add را فشار دهید.و گزینه next را انتخاب کنید.
در پتجره بعد از شما سوال میکند که آیا از username ویندوز استفاده کند و یا اینکه از یک username مخصوص خود Sql Server استفاده کنید. گزینه دوم را انتخاب کرده و سپس Login Name و Password را وارد کنید. (در حالت پیش فرض sa بعنوان login name و فضای خالی بجای Password وارد کنید.) پس از چند بار فشار کلید next شروع به وصل شدن به Server میکند. در صورت موفقیت آمیز بودن با پیامی این کار را اطلاع میدهد.
از دیگر گزینه ها شما بیشترین استفاده را از Databases خواهید کرد.
به عبارت دیگر هر کار و پروژه ما بعنوان یک Database در سرور sql قرار میگرد. همه جداول و دستورات مربوط به آنها در این محل نگهداری می شود.
با کلیک سمت راست برروی Databases و انتخاب New Database... میتوانید یک Database جدید برای خودتان بسازید.
پس از انتخاب نام آن را تایید کنید.
هر Database شامل موارد زیر است :
1- Diagram : ارتباط جداول را نشان میدهد.
2- Tables : جداول پروژه را نشان میدهد.
3- Views : دیدهای پروژه را نشان میدهد.
4- Stored Procedure : کدهای sql مربوط به عملیاتهای روی جداول را نگهداری میکند.
5- Users : کاربران تعریف شده بر روی این database را نشان میدهد.
6- Roles: قوانین دسترسی به جداول و پروسیجرها را نشان میدهد.
7- Rules : قوانین مربوط به داده ها را در جداول نشان میدهد.
گزینه های 7 به بعد کاربرد آنچنانی برای کارهای ابتدایی ندارند
ایجاد یک جدول جدید :
برای ایجاد یک جدول جدید بروی tables کلیک سمت راست کرده و گزینه New Table را انتخاب کنید. سپس در کادر بعدی نام جدول را انتخاب کنید. حال فیلدها و نوع آنها را مشخص کنید .
بعد از مشخص کردن نوع و احتمالاً طول فیلد , باید مشخص کنید که آیا فیلد همیشه می بایست مقدار داشته باشد و یا می تواند null باشد. Allow Nulls اگر تیک داشته باشد یعنی اینکه این فیلد می تواند هیچ مقداری به خود اختصاص ندهد.
تذکر : مقدار null را با فضای خالی اشتباه نگیرید.
در قسمت Default Value مقدار اولیه برای فیلد وارد کنید. تا در صورتیکه هیچ مقداری درج نشد آن مقدار درج شود. (در دستور insert )
اگر Identity را تیک بزنید این فیلد بشکل خود افزا خواهد شد که اولا باید نوع فیلد عددی و ثانیا مقدار گامها در Identity increment مشخص شود. مقدار اولیه آن را هم می توانید در Identity Seed قرار دهید. بدین شکل با این مقدار شروع و با گامهای مشخص شده حرکت خواهد کرد.
تذکر : هیچ مقداری در این فیلد نمی توانید درج کنید , چراکه خود سیستم این مقدار را تولید می کند .
برای مشخص کردن فیلد کلید (یا فیلدهای کلیدی) فیلد(ها) را انتخاب و بر روی علامت کلید بر روی Toolbar کلیک کنید .
تذکر : فیلد کلیدی نمی تواند Allow Nulls باشد.
تذکر : برای تعریف index کلیک سمت راست کرده و index/keys را انتخاب کنید .
( در مورد index بطور مفصل صحبت خواهد شد )
ایجاد Stored Procedure :
مانند هر زبان دیگر رویه ها در sqlServer نیز موجود می باشند. و بکار میروند. سه رویه insert , Updaet و Delete را می توانید براحتی با ویزاردهای خود SqlServer بسازید. از اینجا به بعد از واژه SP بجای رویه استفاده خواهیم کرد.
ابتدا با ساختار کلی SP آشنا شده و سپس به ویزارد موجود خواهیم پرداخت.
برای ایجاد یک SP جدید ابتدا برروی گزینه Stored Procedure کلیک سمت راست کرده و گزینه new Stored Procedure... را انتخاب کنید. در پنچره بعدی شما می توانید متن SP را وارد کنید.
1- نام sp : ابتدا بجای [PROCEDURE NAME] یک نام برای SP خود در نظر بگیرید. من خود از ساختار زیر بدین منظور استفاده میکنیم : عملیات_نام جدول
عنوان مثال اگر نام جدول Sale و عملیات مورد نظر یک عملیات insert باشد نام SP را Sale_INSERT میگذاریم. بهتر است نام عملیات با حروف بزرگ تایپ شود . البته بعضی از دوستان از سه حرف عملیات استفاده می کنند. برای مثال بالا خواهیم داشت :Sale_INS .
2- تعریف پارامترها : برای تعریف پارامترهای ورودی SP قبل از کلمه کلیدی As آنها را داخل پرانتز مشخص کنید. بدین شکل که ابتدا علامت @ سپس نام پارامتر بعد فاصله و نوع پارامتر.
تذکر : تمامی متغییرها در SP از ساختار نام متغییر@ پیروی میکنند.
بعنوان مثال فرض کنید یک SP دارای دو پارامتر با نامهای Id از نوع int و Name از نوع Varchar(20) باشد , داریم :( @id int,@name varchar(20))
حال بعد از As دستورات مورد نظر را تایپ میکنیم :
مثال 1 : SP بنویسید که چهار حرف اول فیلد LastName و فیلد FirstName را از جدول Employees انتخاب کند به شرطی که فیلد LastName با حرف A شروع شود ؟
ابتدا برروی Stored procedure کلیک سمت راست کرده و گزینه New stored procedure را انتخاب کرده و خطوط زیر را تایپ کنید. بعضی از دستورات پایین در کادر باز شده موجود هستند که نیازی به تایپ مجدد آنها نیست .
create Stored Procedure Employees_BROWSE
As
Select substring(Lastname,1,4) as LastNmae,FirstName
From Employees
Where LastName Like ‘%A’
حال بر روی دکمه ok کلیک نمایید. حال SP با نام Employees_BROWSE در لیست SP اضافه شده است .
مثال 2 : تمام فیلدهای Employees را انتخاب کنید که فیلد BirthDate در یک بازه تاریخی که به شکل پارامتر وارد میشود قرار گیرد ؟
create Stored Procedure Employees_BROWSE2
(@StartDate char(10) , @EndDate char(10))
As
Select *
From Employees
Where BirthDate between @StartDate and @EndDate
حال برای اجرای SP ها در Query Analyzer کافی است بنویسیم : نام Exec SP
بعنوان مثال :Exec Employees_browse
اگر پارامتر داشت مقدار پارامترها را هم می آوریم :
Exec Employees_Browse2 ‘01/01/1940’ , ‘15/06/1955’
3- تعریف متغیرها : برای تعریف متغیرها می بایست از کلمه کلیدی Declare استفاده کنیم. بعنوان مثال : Declare @myname varchar(50)
متغییر @myname از نوع کارکتری پویا تعریف میکند.
4- برگرداندن کد خطا : بدین منظور از دستور return @@Error
گرچه هرمقداری را که بخواهیم می توانیم با دستور return برگردانیم.
5- تعریف پارامترها که مقداری را برمی گردانند : برای این منظور هنگامی که پارامتر را در ابتدای پروسیجر تعریف میکنیم بعد از نوع آن از کلمه کلیدی output می کنیم بعنوان مثال :
create Stored Procedure Employees_BROWSE2
(@StartDate char(10) , @EndDate char(10) , @pp varchar(10) output)
As
6- مقدار دهی به متغییرها : به دو روش می توانید این کار را بکنید یکی با دستور Set و دیگری با دستور Select .
7- دستورات شرطی :مانند دیگر زبانها شما می توانید در Sql دستورات شرطی را بکار ببرید. ساختار آن به شکل زیر است :
If شرط then دستور
If شرط then
Begin
دستور1
دستور2
...
end
مثال :
If @Sdate > @Edate set @newDate = @Sdate
8- دستور Set NOCOUNT on : این دستور از نوشت تعداد سطرهای برگردانده شده توسط دستورات جلوگیری میکند. کاربرد مهم آن زمانی است که شما چند کار را پشت سرهم در SP انجام میدهید. مثلا یک جدوی موقت میسازید و سپس از آن یک تعدادی از فیلدها را با دستور Select انتخاب می کنید. اگر این دستور را در ابتدای SP استفاده نکتید , هنگامی که میخواهید از آن SP در یک زبان برنامه نویسی استفاده کنید با خطای SP هیچ dataset ی برنمی گرداند مواجه خواهید شد.
تذکر1 : شما می توانید یک SP را در یک SP دیگر فراخوانی کنید. برای این منظور همانطور که قبلا گفته شد از دستور exec استفاده نمایید.
تذکر 2 : با دستور exec شما می توانید یک دستور sql را نیز اجرا کنید. این کار زمانی بکار می آید که دستور مورد نظر پویا و متغیر باشد.
مثال :
Exec (“ select * From Employees Where “+@Shart)
این شرط میتواند بر اساس فیلدهای بانک تولید گردد.
مثال : یک SP بنویسید که اختلاف تعداد سفارشاتی که فیلد ShipCountry آنها France یا German باشد. را برگرداند ؟
create Stored Procedure Order_France_German ( @Outp int output)
as
declare @Count_France int , @Count_German int
select @Count_France = Count(*)
from orders
where ShipCountry = 'France'
select @Count_German = Count(*)
from orders
where ShipCountry = 'German'
if @Count_France is null set @Count_France = 0
if @Count_German is null set @Count_German = 0
set @outp = @Count_France - @Count_German