• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

imadouzoun

الخبراء المعتمدون
  • عدد المشاركات

    938
  • تاريخ الانضمام

  • تاريخ اخر زياره

السمعه بالموقع

39 عادي

1 متابع

عن imadouzoun

  • الرتبة
    خبير MSSQL Server
  • تاريخ الميلاد 09/11/1985

طرق الإتصال

  • ICQ 0

معلومات الملف الشخصي

  • الجنس ذكر
  • الدولة : مقام سيف الله المسلول سورية - حمص

أحدث الزائرين لملفلك الشخصي

8,861 زياره للملف الشخصي
  1. Backup & restore SQl Server

    السلام عليكم و رحمة الله جرب خدمة نسخ قاعدة البيانات من (مصدر إلى هدف) أنظر الى الصورة الموفقة   تحياتي
  2. Backup & restore SQl Server

    السلام عليكم و رحمة الله أخي الكريم من خصائص قاعدة البيانات .. اختر Options كما توضح الصورة أدناه ثم غير توافقية قاعدة بياناتك إلى النسخة التي تحب, ثم قم بعمل Backup: Backup Database MyDB to disk='C:\Folder1\TestDB.bak'   و قم باستعادتها إلى النسخة المتوافقة بعبارة Restore Database أتمنى أن أكون قد أفدتك. تحياتي
  3. السلام عليكم أخي الكريم يمكنك التغلب على هذه المشكلة عن طريق تنفيذ المستخدم الثاني للعبارة التالية قبل استدعاء الـ Select Query:   Set Transaction Isolation Level Read Uncommitted Select * from X و هنا سيقرأ المستخدم الثاني ما يسمى بالـ Dirty Data و المقصود أن ما سيقرأه المستخدم الثاني قد يتم التراجع عنه عن طريق الـ Rollback التي ربما يستدعيها المستخدم الأول.   و اذا اردت أعمل المثال التالي لتبسيط الشرح: أنشأ جدولا سمه  X: Create Table X(id int) أضف بيانات عبثية: Insert T select 1 union select 2 union select 3 الآن دع المستخدم الأول ينفذ التالي: begin tran Insert T select 10000 الآن دع المستخدم الثاني ينفذ التالي: Set Transaction Isolation Level Read Uncommitted Select * from T ثم اجعل المستخدم الأول يتراجع عن المناقلة: rollback Tran و كل الذي سبق يمكنك تنفيذه في الـ SQL Server Management Studio   أتمنى أن أكون قد أجبتك أخي الكريم. تحياتي    
  4. السلام عليكم و رحمة الله مع احترامي لجميع الذين أجابوا على السؤال لكني أظن أن هناك حلقة مفقودة في الإجابات, و هي أن وجود الـ Transaction لا يمنع بقية المستخدمين من استدعاء الإجراء أو من الوصول إلى الجداول التي يتعامل معها الإجراء المخزن ما لم يكن مستوى عزل الـ Transaction محدد كـ Serializable و هي أقوى حالات العزل و تماثل استدعاء Select  مع الخيار HOLDLOCK. Create Proc TestProc AS SET TRANSACTION ISOLATION LEVEL Serializable Begin Tran -- You SQL Statements Here Commit Tran Go تحياتي للجميع
  5. السلام عليكم و رحمة الله   أخي الكريم الـ SQL Server  هو في نهاية الأمر خدمة تعمل على أحد أنظمة تشغيل Windows طبعاً كل Version تدعم أنظمة تشغيل محددة .. و هناك العديد من الروابط التي تفصل ما تدعمه كل نسخة من أنظمة تشغيل .. على كل حال, المسألة ببساطة أنك تحتاج إلى Settings و Configurations لكي تتصل بالخدمة بدءاً من اعداد البروتوكول المستخدم للاتصال و الport الذي يكون بشكل افتراضي 1433 و   عنوان السيرفر (IP Address  أو DNS Name ) مضافاً اليه اسم الـ SQL Server Instance  <=> و هذا السطر يكافئ Database Host   بالاضافة الى أن الاتصال ب SQL Server يتطلب Login عن طريق أحد نوعي الحسابات في SQL Server و هما Windows Account أو SQL Server Account و هذا هو المقصود لديك من User Name و الـ Password   أما الـ Database Name  فكما تعرف أن SQL Server يحتوي أكثر من قاعدة بيانات .. لذا عليك أن تخبر البرنامج أي من قواعد البيانات هذه تريد الاتصال بها .. على سبيل المثال "Master".   الموضوع طويل و له تتمة لذلك أنصحك قبل أن تبدأ بمهمتك هذه أن تقرأ عن كيفية الاتصال بقواعد البيانات SQL Server .. و أظن أن المنتدى يحتوي مقالة لي عن هذا الموضوع و اليك رابطه:     http://arabteam2000-forum.com/index.php/topic/139698-%D9%84%D9%85%D8%AD%D8%A9-%D8%B3%D8%B1%D9%8A%D8%B9%D8%A9-%D8%AD%D9%88%D9%84-%D8%A7%D9%84%D8%A7%D8%AA%D8%B5%D8%A7%D9%84-%D8%A8%D8%A7%D9%84-sql-server-management-studio/       بالتوفيق
  6. أنصح بشدة بتغيير الـ Collation لعمود جدولك الذي يظهر على شكل اشارات استفهام .. لكن يمكنك أن تنجز المطلوب أيضا عن طريق الـ SQL كالتالي: Select Column_Name Collate Arabic_CS_AI as Column_Name From  Table_NameCollate Arabic_CS_AI: هذه العبارة ستمكنك ببساطة من تحويل الـ Collation أثناء تنفيذ الاستعلام فقط إلى اللغة العربية.. و اذا اردت لغات اخرى فيمكنك أن تختار احداها من ناتج تنفيذ الاستعلام التالي: SELECT name, description FROM fn_helpcollations();بالتوفيق  
  7.   تعقيب على البند الأول: اعذرني فالكلام الذي قلته غير دقيق.. لأنك أخي الكريم ببساطة تستطيع أن تضع السكريبت خاصة أخونا الذي يسأل في اجراء مخزن بعد احاطته بمؤشر للمرور على السجلات مع استخدام جدول مؤقت أو متحول من نوع جدول و تضع النتائج فيه ثم تعمل عليها Select و سيعيد بذلك الإجراء Record Set كنتيجة لتنفيذ الإجراء المخزن و ببساطة ستتمكن من استدعائها من البرنامج عن طريق .Net و عرض النتائج سواء في تقرير أو في GridView.   تعقيب على البند الثاني و الثالث: بالنسبة لجلب السجلات كنت أقصد جلب المفتاح الأساسي فقط و ليكن Identity Column و جلب 10000 سجل منه لن يستغرق سوى أجزاء من الثانية و قد جربت بنفسي الآن الاستعلام من SQL Server عن طريق الشبكة و استغرق جلب السجلات أجزاء من الثانية كما قلت لك.   أما بالنسبة للحل خاصتك هو طبعا أفضل في حال امكانية دمج العبارات في Select Statement واحدة أو أكثر, لكن لم يكن عندي وقت كاف لاستوعب ماذا كان يحاول أخونا أن يصل اليه من السكريبت خاصته.   طبعاً قصدت النقاش لنستفيد كلينا و ليس لأخطئك ..   تحياتي للجميع
  8. السلام عليكم و رحمة الله و بركاته   اخي الكريم عدة حلول و سأقترح عليك بعضا منها:     1- أن تنشئ إجراء مخزن يحتوي على مؤشر يمر على كل السجلات المطلوب تطبيق السكريبت خاصتك عليها (راجع درس المؤشرات خاصتي للتعرف على كيفية  استخدامها).   2- أو تجلب السجلات الى البرنامج الهدف عن طريق SqlDataReader أو SqlDataAdapter أقصد الـ ADO.NET و تنشئ حلقة تمر بها على كل سجل و تستدعي من أجله اجراء مخزن يطبق ما تريد على كل سجل على حدى.   3- باستخدام الـ LINQ To SQL أو الـ Entity Framework لتجلب الـ Records الهدف على شكل ObjectSet و تنشئ حلقة ايضا لتمر على السجلات و تطبق السكريبت خاصتك الذي يجب أن يكون اجراء مخزن تستدعيه في كل مرور للحلقة.   بالتوفيق
  9. تجميع سجلات

    السلام عليكم و رحمة الله     تحتاج الى استخدام تعليمة الـ Group By في الـ SQL.. أظن و لست متأكد أنك أخي الكريم لا تعرف كثيرا اللغة SQL و اذا كان ظني في مكانه إليك هذا الرابط الذي سيعطيك فكرة مبسطة عن تجميع السجلات:     http://www.sqlteam.com/article/how-to-use-group-by-in-sql-server     بالتوفيق
  10. Script Index

    السلام عليكم و حمة الله   يمكن ذلك عن طريق ال Management Studio كما توضح الصورة.   بالتوفيق
  11. الحل بسيط للغاية أخي الكريم..   الغي خاصة الترقم التلقائي و استخدم طريقة برمجية لترقيم السجلات الجديدة كالتالي:     Create Table Employee(Id int primary key, Name Varchar(50))Go-- Create a stored procedure for insertCreate Proc Employee_Insert @Id int = null out, @Name Varchar(50) = nullAS Select @Id = IsNull(max(Id), 0) + 1 from Employee Insert Employee(Id, Name) Values(@Id, 'New Employee')Goبالتوفيق
  12. مجانية مدى الحياة..   طبعا لها امكانيات محدودة ... ولكنها تكفي شركة متوسطة. :)
  13. السلام عليكم و رحمة الله:   حمل هذه النسخة من Windows Management Framework و قم بتنصيبها قبل البدء بتنصيب SQL Server:     http://www.microsoft.com/en-us/download/details.aspx?id=34595     بالتوفيق.
  14. السلام علثيكم و رحمة الله و بركاته   أخي الكريم أنت تحاول - و الله أعلم - عمل Attach لقاعدة بيانات (مبنية باستخدام SQL Server 2012 ) باستخدام نسخة SQL Server 2008 و هذا ما يسمى بالـ Downgrading .. لذلك و لحل المشكلة عليك بتحميل نسخة SQL Server 2012 و تنصيبها على جهازك ثم جرب عمل attach مرة أخرى و بإذن الله ستنحل المشكلة.   على فكرة نفس المشكلة حدثت معي في الماضي و حليتها بتنصيب الـ Service Packs .. لكن مشكلتك تتطلب الذي ذكرته لك حسب الأرقام المذكورة في رسالة الخطأ.   اليك رابط النسخة المطلوبة:   http://www.microsoft.com/en-us/download/details.aspx?id=29062   بالتوفيق.
  15. لا يوجد ما تطلبه حسب معرفتي .. لأن الأمر ببساطة أن تقريبا أي شي تريد فعله بالسكريبت تستطيع توليده عن طريق الواجهة الرسومية للـ SQL Server Management Studio مثلاً نقرة يمين على أي جدول في القاعدة و اختر   "Select Top 100 Rows"..   و سيكتب الـ Studio السكيريب لك و ينفذه.. و هذا حال العديد من المهام ..   أما ميزة الـ Intellisense فهي للأغراض و ليست للكلمات المحجوزة في اللغة T-SQL.. ببساطة تظهر الـ List Members عن طريق الـ CTRL + J     تحياتي و بالتوفيق