۱۱ مطلب با کلمهی کلیدی «SQL 2008» ثبت شده است
حذف تمام پروسیجر ها
بسم الله الرحمن الرحیم
حذف کردن تمامی پروسیجر ها
برای دوستان عزیز که در تیم طراحی پایگاه داده SQL فعالیت می کنند مطلبی را آماده کردم که انشالله مفید واقع شود.
برای حذف تمامی پروسیجر های موجود در یک پایگاه داده کافی است که کد زیر را اجرا کنید تا تمامی پروسیجر های شما
حذف شوند.می توان این دستور را به صورت یک پروسیجر ذخیره کنید تا در مواقع نیاز از آن استفاده کنید و در نهایت کد ما
به این صورت می شود.
ادامه مطلب...
فعال کردن قابلیت Remote به SQL Server
بسم الله الرحمن الرحیم
ممکن است شما بخواهید بر روی SQL Server خود این امکان را قرار دهید تا بتوانید بیرون از سرور به SQL Server دسترسی داشته باشید.
برای این کار چند لینک مفید را به شما معرفی می کنم
http://msdn.microsoft.com/en-us/library/cc646023.aspx
http://cs.thomsonreuters.com/ua/toolbox/cs_us_en/kb/k73037522.htm
http://www.mssqltips.com/sqlservertip/1929/configure-windows-firewall-to-work-with-sql-serve
تغییر دادن مقدار Timeout در SqlCommand
بسم الله الرحمن الرحیم
در بعضی اگر شما بخواهید یک دستور اسکیوال را از طریق سی شارپ فراخوانی کنید که مدت زمان اجرای آن دستور بسیار طولانی باشد با خطای زیر مواجه می شوید:
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. The statement has been terminated
برای حل این مشکل شما باید مدت زمان Timeout را در SQL Command افزایش دهید و یا این پارامتر را غیر فعال کنید.
به صورت پیش فرض مدت زمان CommandTimeout در SqlCommand برابر با 30 ثانیه می باشد که شما می توانید به صورت زیر آن را تغییر دهید
SqlCommand sqlCommand= new SqlCommand("select * from table_EduOnline");
SqlCommand.CommandTimeout = 100;//100 secound
و یا با مساوی قرار دادن CommandTimeout برار با 0 آن را غیر فعال کنید
SqlCommand.CommandTimeout = 0;// disable
با استفاده از دستور Delay می توانید این خاصیت را تست کنید، مثال:
static void Main(string[] args)
{
string cString = @"Data source=<your server>;Integrated Security=SSPI;Initial Catalog=Northwind";
using (SqlConnection sc = new SqlConnection(cString))
{
try
{
SqlCommand cmd = new SqlCommand("waitfor delay '00:00:30';select * from Shippers", sc);
cmd.CommandTimeout = 10;
Console.WriteLine("CommandTimeout: {0}", cmd.CommandTimeout);
sc.Open();
SqlDataReader r = cmd.ExecuteReader();
while (r.Read())
Console.WriteLine("{0} : {1}", r[0].ToString(), r[1].ToString());
sc.Close();
}
catch (SqlException se)
{
Console.WriteLine(se);
}
}
}
مفاهیم دیتا ماینینگ
بسم الله الرحمن الرحیم
آموزش دیتا ماینینگ
با توجه به طراحی و پیاده سازی سیستم های اتوماسیون اداری، در حال حاضر بسیاری از سازمان ها از اینگونه نرم افزار ها برای مدیریت فرایندهای درون سازمانی استفاده می کنند. با توجه به این موضوع شاید تجربه از بین رفتن اطلاعات یا قطع شدن سیستم برای بازهای زمانی کوتاه وطولانی و در هر صورت به وجود آمدن مشکلات بسیار بزرگ را داشته باشید.
در تکنولوژی های جمع آوری اطلاعات، مبحثی با عنوان DA یا به اصطلاح Data Availability که به معنای تداوم پذیری دسترسی به داده ها است به عنوان دغدغه اصلی تمامی سازمان ها می باشد.
ادامه مطلب...جداول موقت در SQL Server
بسم الله الرحمن الرحیم
آموزش جداول موقت در SQL Server
همانطور که می دانید در SQL server یک پایگاه داده از پیش تعریف شده با نام Tempdb وجود دارد، در بعضی مواقع شما نیاز به یک جدول موقت نیاز دارید این جداول در این پایگاه داده ذخیره می شود البته جداول به دو دسته تقسیم می شوند یکی ما متغییر هایی از جنس جدول و دیگری جداول موقت، منظور ما جداول موقت است.
خوب برای استفاده از ویژگی متغییر های جداول موقت کافی است مثل مثال زیر عمل نمایید:
DECLARE @Table TABLE
(
id INT ,name NVARCHAR(MAX)
);
DECLARE @i INT =0
WHILE(@i<20)
BEGIN
INSERT INTO @Table ([id],[name]) VALUES (@i,'ESH')
SET @i+=1;
END
SELECT * FROM @Table
--UPDATE
--DELETE
ادامه مطلب...
آموزش PIVOT در SQL Server
بسم الله الرحمن الرحیم
آموزش SQL Server
در بعضی مواقع نیاز است بجای نمایش نام ستون ها، مقدار فیلد به عنوان نام ستون و مقدار آن زیر ستون نمایش داده شود خوب بدون توضیح اضافی یک مثال مطرح می کنیم
SELECT [shiraz],[tehran]
FROM
(
SELECT [name]
,[salary]
FROM [emp]
) AS TEMP
PIVOT
(
SUM(salary) FOR [name] IN ([shiraz],[tehran])
)AS PVT
و در نهایت خروجی دستور
ادامه مطلب...چطور سرعت واکشی اطلاعات را افزایش دهیم؟
بسم الله الرحمن الرحیم
آموزش SQL Server
در بسیاری از پروژه ها به دلیل حجم پایین اطلاعات و تراکنش اندک در RW کردن اطلاعات هیچ نیازی به بهینه سازی اطلاعات نیست، اماممکن است شما هم مثل بنده بخواهید پایگاه داده ای را طراحی کنید که سرعت واکشی بسیار مهم باشد.
مثلا یک سایت بزرگ را در نظر بگیرید، سایتی مثل facebook این سایت چه تعداد کاربر دارد حجم تبادل اطلاعات آن چقدر است و هر روز به صورت نجومی این حجم اطلاعات در حال افزایش است، واقعا خیلی زیبا است که چطور با این حجم اطلاعات بتوان کار کرد (من شخصا پایگاه دادهایی را بیشتر از چندین گیگابایت تجربه کردم ولی تا این حد را تجربه نکردم) خوب کمی واقعی فکر کنیم! مثلا این را در نظر بگیرید که می خواهید یک سایت جامعه مجازی فقط و فقط برای یک شهر ایران بنویسید و طراحی پایگاه داده آن با شما است.
ادامه مطلب...
معرفی دو DataType در SQL
بسم الله الرحمن االرحیم
آموزش SQL Server
Timestamp
در بعضی مواقع نیاز است شما اطلاعات درون یک پایگاه داده را به صورت Mirror ذخیره کنید، یعنی ما یک پایگاه داده اصلی و یک پایگاه داده پشتیبان داریم که اطلاعات بر روی پایگاه داده اصلی RW می شود و نسخه ای از آن نیز بر روی پایگاه داده دوم بایگانی می شود. خوب فکر کنید این کار را در سطح بسیار کوچکتر و فقط بر روی یک جدول در یک پایگاه داده انجام دهید یعنی اطلاعات این جدول با ارزش بوده و می خواهید به صورت ساده هر تغییری که در اطلاعات جدول شماره یک صورت گرفت بر روی جدول شماره دو انجام شود. راه حل؟
خوب بعضی ها اولین راه را انتخاب می کنند یعنی هر عملیات CUD را بروی جدول شماره یک اگر صورت گرفت بر روی جدول شماره دو نیز همان کار را تکرار می کنند، خوب است.
خوب راه دیگر استفاده از فیلد TimeStamp است که مقدار باینری را در خود نگه می دارد، در صورتی که مقدار رکورد عوض شود مقدار باینری این فیلد نیز عوض خواهد شد
پس اگر بخواهید متوجه شوید که مثلا بر روی رکورد شما توسط کاربر تغییری صورت گرفته می توان با مشاهده مقدار این فیلد، به این جواب برسید مثال:
ادامه مطلب...
آموزش SQL Transaction
بسم الله الرحمن الرحیم
آموزش SQL Transaction
در این بخش قصد دارم مدیریت تراکنش های اسکیوال را به صورت مختصر توضیح دهم
توسط متغییر Global، @@Error می توانیم شماره خطا را بازیابی نماییم اگر خطایی داشته باشیم مقدار این متغییر از صفر بزرگتر است در غیر این صورت مقدار آن صفر است و در صورتی که از این متغییر استفاده کنیم مجددا مقدار این متغییر صفر می گردد
همچنین جهت خواندن شماره خطا می توانیم از Error_Number() استفاده کنیم و جهت چاپ متن خطا از Error_Message استفاده می کنیم
جهت ایجاد یک خطا به صورت دستی می توانیم از RAISERROR استفاده کنیم
مثال
RAISERROR('خطایی رخ داده است',16,1)
به دلیل وجود کاراکترهای فارسی و انگلیسی جای متن خطا از ابتدا به انتها منتقل شده به همین دلیل تصویری در انتهای مطلب قراردادم که گویا ی موضوع باشد
عدد 16 محدوده خطا را مشخص می کند بهتر است همیشه از این عدد استفاده کند چون این عدد خطای ایجاد شده را به برنامه ی شما (مثلا سی شارپ) نیز ارسال می کند.
کاربرد این دستور برای مواردی است که شما می خواهید در صورت برقرار نشدن یک شرط دستورات خاتمه یابد مثلا برای جلوگیری از درج یک رکورد جدید در جدول کاربران با نام کاربری که قبلا ثبت شده است.
در مواردی که شما می خواهید در یک تراکنش تنها بخشی را خاتمه دهید ولی تراکنش همچنان ادامه داشته باشد کافی است که شما از دستور Save Point استفاده نمایید
مثال
BEGIN TRAN PARRNT
INSERT INTO USERS(userName,[password]) VALUES ('A','A')
PRINT 'INSERTED A'
BEGIN TRY
SAVE TRAN INSERT_PART
RAISERROR ('خطایی رخ داده است',16,1)
INSERT INTO USERS(userName,[password]) VALUES ('B','B')
PRINT 'INSERTED B'
END TRY
BEGIN CATCH
ROLLBACK TRAN INSERT_PART
END CATCH
INSERT INTO USERS(userName,[password]) VALUES ('C','C')
PRINT 'INSERTED C'
COMMIT TRAN PARENT
آشنایی با SQL
بسم الله الرحمن الرحیم
آموزش SQL Server
DataBase Engine
در واقع مهمترین بخش اسکیو ال است که وظیفه مدیریت و اجرای سرویس های پایه را بر عهده دارد ساخت دیتابیس، مدیریت رشد db، ساخت جداول، جستجو، مرتب سازی، ایندکس کردن، اجرای دستورات، ساخت توابع و پروسیجر و تریگر، امکان برنامه نویسی از راه دور، امنیت، نسخه پشتیبان، اتچ کردن، همه توسط این بخش صورت می گیرد.
نرم افزار SQL Server Business Intellgince
به صورت مختصر و مفید باید گفت برنامه ای است که توانایی اجرای دستورات C# را در اسکیوال دارد.
SSMS
به صورت مختصر و مفید باید گفت نرم افزاری است که توسط آن می توانیم به تمامی امکانات اسکیوال به صورت گرافیکی دسترسی داشته باشیم.
خوب سعی کردم تمام این مطالب را کمی مختصر مطرح کنم تا برسیم سراغ بحث اصلی خودمان، در بعضی ممکن است شما بخواهید بر روی یک سیستم کارها و دستورات اسکیوال را اجرا کنید ولی به دلیل محدودیت هایی نمی توانید اسکیوال سرور را به صورت کامل نصب کنید تا از بخش های مدیریت آن استفاده کنید، خوب راه حل ؟
شما کافی است از نرم افزار کوچکی به نام SQL Comand در Command line استفاده کنید
ادامه مطلب...
حذف کانکشن های یک دیتابیس
بسم الله الرحمن الرحیم
برای دوستان عزیز که در تیم طراحی پایگاه داده SQL فعالیت می کنند این کد بسیار کارا خواهد بود.
برای اینکه شما بتوانید یک پایگاه داده را Restore کنید می بایست ابتدا تمامی Connection های آن را حذف کنید برای این فرایند کافی است که دستور زیر را بر روی پایگاه داده خود اجرا نمایید (بجای MyDATABASE نام پایگاه داده خود را وارد نمایید). البته این مشکل مربوط به نسخه های قدیمی SQL می باشد.
اما به هر حال بسیاری از مواقع شما نیاز دارید تمامی Connnection های فعال اسکیوال سرور را حذف کنید. برای این کار کافی است تکه کد زیر را بروی دیتابیس مورد نظر خود اجرا کنید.
ادامه مطلب...