سؤال

في الماضي لقد كنت قادرا على تضمين languate sripting (مثل ل JScript) داخل SQLCLR، لذلك يمكن أن تنتقل النصوص كمعلمات من الوظائف، لأداء بعض العمليات الحسابية. هنا مثال مبسط (وظيفة ssScriptExecute بإرجاع سلسلة من جميع الطباعة في البرنامج النصي):

select dbo.ssScriptExecute( 'print("Calculation: "+(1+2/3) );' )

-- Calculation: 1.6666666666666665

وأنا أحب أن تكون قادرة على تضمين وقت PowerShell في نفس الطريق. بل لقد كان كل نوع من المشاكل لأن وقت يحاول العثور المجالس التي كتبها مسار، وليس هناك مسارات داخل SQLCLR. أنا سعيد لتقديم مزيد من المعلومات عن أخطاء I الحصول عليها، ولكني أتساءل عما اذا كان قد حاول أي شخص هذا!

وشكرا!

هل كانت مفيدة؟

المحلول

ويمكنني استخدام حقن رمز ايل System.Automation.Management تعديلها. جعل نسخة متغير في GetPSVersionTable () أن يكون "2.0" بعد ذلك يمكنني أن تشغيل كود بوويرشيل في SQL Server.

ومما لا شك فيه إشارة هذا دلل تعديل في مشروع استوديو المرئي.

http://www.box.net/shared/57122v6erv9ss3aopq7p

وراجع للشغل، مؤتمتة تسجيل كل DLL كنت في حاجة مع تشغيل PowerShell في SQL

ويمكنك استخدام هذا الرمز PS1

http://www.box.net/shared/tdlpu1875clsu8azxq4b

نصائح أخرى

وأعتقد أن الطريقة الوحيدة للقيام بذلك هي لإنشاء خدمة WCF استضافة بوويرشيل، والسماح SQLCLR إرسال طلب dbo.ssScriptExecute (...) لهذه الخدمة لتنفيذها. وإلى جانب من ذلك، أنا أيضا جزءا لا يتجزأ بنجاح paxScript.net في SQLCLR (مترجم ليس لديها مشاكل تسرب الذاكرة من لغات DLR).

واعتقدت SQLCLR تقتصر على مجرد مجموعة معينة من الجمعيات وPS أتمتة ليست واحدة منها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top