لو فرضنا عايز اعمل انشاء للمجلد باستخدام امر من اوامر ال SQL فما هو هذا الامر لكي أنشئ مجلدا جديدا،،
كيف أنشئ مجلد بامر من اوامر T-SQL Server
السلام عليكم ورحمة الله وبركاته :
Declare @Command Nvarchar(4000) , @Directory Nvarchar(4000) Select @Directory = 'C:\MyFolder\' , @Command = 'MD ' + @Directory Exec Master..Xp_CmdShell @Command
بالتوفيق ..
تم تعديل هذه المشاركة بواسطة imadouzoun في 14 أغسطس 2007 في 13:58
دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله
أخوكم في الله.. Imad Ozone
الامر يزبط فقط اذا كان التنفيذ على الجهاز local
انا اريده ينفذ على جهاز السيرفر وشكرا
لازم يكون معاك صلاحيات على السيرفر اي لازم تكون في sysadmin .
طبعا مايكروسوفت عملت تعقيدات على هذا الامر بعد استغلاله في sql 2000 من قبل فايروس worm الذي كان يعمل بطء في الشبكة وما الى ذلك ونزلت sql 2000 sp3
نعم معي صلاحيات كاملة على النظام اود الاتصال على السيرفر 10.10.10.90 عادي يتصل
الان بعد الاتصال من خلال نافذة Management اريد اكتب وانفذ الكود السابق الله يحفظك
لا يكفي الاتصال بل قصدت كصلاحيات في sql server او ان تكون داخل ك sa
بمعنى اخر ادخل على management studio ثم security --> logins
ثم على خصائص اسم المستخدم الذي تدخل به حيث يوجد server role ويجب ان يكون هناك موضوع صح على sysadmins
هذا بالنسبة للصلاحيات ويجود امر اخر وهو ان هذا الامر افتراضيا يكون معطل ولتفعيله اعمل مايلي
EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXEC sp_configure 'xp_cmdshell', 1; GO RECONFIGURE; GO كود الاخ عماد هنا ثم تعطيل الامر مرة اخرى go EXEC sp_configure 'xp_cmdshell', 0; GO RECONFIGURE; GO
انا معي كامل الصلاحيات
انا استخدم windows authontication
والكود يزبط فقط على الجهاز المحلي اي لا ينشئ اي ملفات على الجهاز المتصل عليه . بل ينشئها على الجهاز المحلي/// اما السيرفر فلا ينفذ عليه اي شئ ولا يظهر المجلد على جهاز السيرفر بل يظهر على جهاااااازي المحلي...... فقط على الجهاز المحلي.
با
لم يكن هذا الامر واضحا بالنسبة لي بهذا الشكل
للتنفيذ على السيرفر عليك بالبروسيجر
create procedure u_MD as Declare @Command Nvarchar(4000) , @Directory Nvarchar(4000) Select @Directory = 'C:\MyFolder\' , @Command = 'MD ' + @Directory Exec Master..Xp_CmdShell @Command go --وبعد ذلك نفذ هذا البروسيجر exec u_MD
طبعا يمكنك تمرير اسم المجلد وما الى ذلك لكن لاختصار الوقت لم افعل ذلك
شكرا جزيلا الله يحييك
جاري التجريب :)
هذا الموضوع مغلق.
