ِشرح ل SQL server Database Snapshots

Posted by admin | Posted in SQL server | Posted on 27-05-2010

Tagged Under : ,

وضعت شرح في منتدى الفريق العربي يشرح Database Snapshots حيث يتكلم هذا الشرح عن

استخدامات ال Snapshots

طريقة عملها النظرية

كيفية انشاءها باستخدام T-sql

وبعض الملاحظات الاخرى

تجد الشرح  هنا

احتساب ايام العطل او الدوام بين تاريخين

Posted by admin | Posted in SQL server | Posted on 30-12-2009

Tagged Under :

منذ اسبوع احتجت الى سكريبت لاحتساب ابام الدوام بين تاريخين فوجدت عندي سكريبت يقوم بهذا الاحتساب لكنه يعتمد على ان ايام العطل هي السبت والاحد ولحسن الحظ كان هذا مناسبا وكافيا  لما احتاجه ومضطر عليه ذلك الوقت  .

لكن في هذا اليوم ساقدم لكم سكريبت ابسط بحيث يمكن اختيار ايام العطل بشكل مختلف (وهذا السكريبت بالاعتماد على  التدوينة   Get Date of All Weekdays or Weekends of the Year ) وهذا هو السكريبت

 

DECLARE @StartDate DATETIME, @EndDate DATETIME

SELECT @StartDate = '20100101' --اول تاريخ
SELECT @EndDate   = '20100131' --آخر تاريخ 
;WITH cte AS (
SELECT 1 AS DayID,
@StartDate AS FromDate,
DATENAME(dw, @StartDate) AS Dayname
UNION ALL
SELECT cte.DayID + 1 AS DayID,
DATEADD(d, 1 ,cte.FromDate),
DATENAME(dw, DATEADD(d, 1 ,cte.FromDate)) AS Dayname
FROM cte
WHERE DATEADD(d,1,cte.FromDate) < @EndDate
)

SELECT FromDate AS Date, Dayname
FROM CTE
WHERE DayName IN ('Friday','Saturday')
OPTION (MaxRecursion 370)

حيث يقوم هذا السكريبت بعرض ايام العطل في شهر كانون الثاني /يناير (ايام العطل في هذا السكريبت هي الجمعة والسبت ويمكن تغييرها بسهولة من اخر جملة).

لعرض عددايام العطل  فقط نغير في  جملة Select  الاخيرة كمايلي :

SELECT Count(*)
FROM CTE
WHERE DayName IN ('Friday','Saturday')
OPTION (MaxRecursion 370)

 

لعرض عدد  ايام الدوام

SELECT Count(*)
FROM CTE
WHERE DayName not IN ('Friday','Saturday')
OPTION (MaxRecursion 370)

فكما نرى يمكن الاعتماد على هذا السكريبت في اخراج الايام المحددة كما نريدها وبسهولة .

ملاحظة : اذا كان الاحتساب لمدة طويلة اكبر من سنة() يجب زيادة OPTION (MaxRecursion 370)  الى رقم اعلى بحيث يكون اكبر من عدد الايام المتوقع .

ملاحظة عند تحميل قاعدة بيانات الى موقع استضافة

Posted by admin | Posted in SQL server | Posted on 17-12-2008

الكثير منا يواجه مشكلة عند تحميل قاعدة بيانات SQL server الى موقع الاستضافة حيث تظهر الكلمات العربية على شكل علامات استفهام  عند عرضها في الموقع مثلا من خلال تطبيق ASP.Net  . احدى اهم الاسباب  لهذه المشكلة هو ترميز  سيرفر SQL server   وبالتالي ترميز قاعدة البيانات يكون لاتيني ولايدعم العربي مباشرة .

حل هذه المشكلة هو عند انشاء قاعدة البيانات من لوحة التحكم للموقع الانتقال مباشرة الى SQL server Management Studio والاتصال بالسيرفر ثم تنفيذ الامر التالي :

use master
go
Alter database <Database_Name, sysname, Database_Name> collate arabic_CI_AS
go

مع تغيير اسم قاعدة البيانات لما يناسب القاعدة المراد تغييرها .

بعد ذلك يمكن تحميل وانشاء الجداول بالطريقة المناسبة  .

ادخال مجموعة من الصفوف الى جدول في 2008

Posted by admin | Posted in SQL server | Posted on 28-08-2008

بعد صدور النسخة النهائية من SQL server 2008 لا بد لنا معرفة الجديد في هذا الاصدار لذا ساحاول وضع تدوينات تشرح ما هو جديد وسأبدا كما هو عنوان هذه التدوينة بالجديد في عملية ادخال مجموعة من الصفوف الى جدول في SQL Server 2008 . فقد كانت طريقة ادخال مجموعة من البيانات الى جدول تتم كمايلي

INSERT INTO SomeTable  (Col1, Col2)
        VALUES ('Hi',1);
INSERT INTO SomeTable  (Col1, Col2)
        VALUES ('Hello',2);
INSERT INTO SomeTable  (Col1, Col2)
        VALUES ('Marhaba',3);

اما في الاصدار 2008 فقد تم اختصار تكرار جملة الادخال والاكتفاء فقط في اول جملة فتصبح طريقة الادخال كمايلي

 
INSERT INTO SomeTable  (Col1, Col2)
        VALUES ('Hi',1);
        VALUES ('Hello',2);
        VALUES ('Marhaba',3);
 
 

أرجو لكم الاستفادة