ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

۱۱ مطلب با کلمه‌ی کلیدی «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 است که مقدار باینری را در خود نگه می دارد، در صورتی که مقدار رکورد عوض شود مقدار باینری این فیلد نیز عوض خواهد شد

پس اگر بخواهید متوجه شوید که مثلا بر روی رکورد شما توسط کاربر تغییری صورت گرفته می توان با مشاهده مقدار این فیلد، به این جواب برسید مثال:

 

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

 

SavePoint

آشنایی با SQL

بسم الله الرحمن الرحیم

آموزش SQL Server

DataBase Engine

 در واقع مهمترین بخش اسکیو ال است که وظیفه مدیریت و اجرای سرویس های پایه را بر عهده دارد ساخت دیتابیس، مدیریت رشد db، ساخت جداول، جستجو، مرتب سازی، ایندکس کردن، اجرای دستورات، ساخت توابع و پروسیجر و تریگر، امکان برنامه نویسی از راه دور، امنیت، نسخه پشتیبان، اتچ کردن، همه توسط این بخش صورت می گیرد.

 

نرم افزار SQL Server Business Intellgince

به صورت مختصر و مفید باید گفت برنامه ای است که توانایی اجرای دستورات C# را در اسکیوال دارد.

 

SSMS

به صورت مختصر و مفید باید گفت نرم افزاری است که توسط آن می توانیم به تمامی امکانات اسکیوال به صورت گرافیکی دسترسی داشته باشیم.

خوب سعی کردم تمام این مطالب را کمی مختصر مطرح کنم تا برسیم سراغ بحث اصلی خودمان، در بعضی ممکن است شما بخواهید بر روی یک سیستم کارها و دستورات اسکیوال را اجرا کنید ولی به دلیل محدودیت هایی نمی توانید اسکیوال سرور را به صورت کامل نصب کنید تا از بخش های مدیریت آن استفاده کنید، خوب راه حل ؟

شما کافی است از نرم افزار کوچکی به نام SQL Comand در Command line استفاده کنید

ادامه مطلب...

حذف کانکشن های یک دیتابیس

بسم الله الرحمن الرحیم

برای دوستان عزیز که در تیم طراحی پایگاه داده SQL فعالیت می کنند این کد بسیار کارا خواهد بود.

 

برای اینکه شما بتوانید یک پایگاه داده را Restore کنید می بایست ابتدا تمامی Connection های آن را حذف کنید برای این فرایند کافی است که دستور زیر را بر روی پایگاه داده خود اجرا نمایید (بجای MyDATABASE نام پایگاه داده خود را وارد نمایید). البته این مشکل مربوط به نسخه های قدیمی SQL می باشد.

اما به هر حال بسیاری از مواقع شما نیاز دارید تمامی Connnection های فعال اسکیوال سرور را حذف کنید. برای این کار کافی است تکه کد زیر را بروی دیتابیس مورد نظر خود اجرا کنید.

 

ادامه مطلب...
up
ما را در گوگل محبوب کنید