PDA

View Full Version : اجرای Procedure.sql در NET.



m.yazdian
دوشنبه 17 تیر 1387, 07:41 صبح
مشکل اینجاست که من یه Query دارم مثل این

Create Procedure gholi AS
Select * from tbluser

با احتساب اینکه tbluser وجود داشته باشه ، حالا من میخوام مثلا 10 تا Procedure بسازم از gholi1 تا gholi10




Create Procedure gholi1 AS
Select * from tbluser

Create Procedure gholi1 AS
Select * from tbluser

Create Procedure gholi2 AS
Select * from tbluser

Create Procedure gholi3 AS
Select * from tbluser

Create Procedure gholi4 AS
Select * from tbluser

Create Procedure gholi5 AS
Select * from tbluser

Create Procedure gholi6 AS
Select * from tbluser

Create Procedure gholi7 AS
Select * from tbluser

Create Procedure gholi8 AS
Select * from tbluser

Create Procedure gholi9 AS
Select * from tbluser

Create Procedure gholi10 AS
Select * from tbluser



وحالا این Query ها در Query Analyzer یکجا اجرا میشن ولی وقتی میزارم توی یه فایل Procedure.sql وتوسط StreamReader تو NET. می خونمش و با sqlcommand اجراش میکونم ٍ Error میده عکسش هم اون بالا هست.
در صورتی که اگر در فایل Procedure.sql تنها یک فرمان ساخت Procedure را بدم برنامه بدون اشکال کار خود را انجام میدهد و Procedure را میسازد

m.yazdian
دوشنبه 17 تیر 1387, 11:44 صبح
از افرادی که کمک می کنند تشکر می کنم.
من خیلی با این موضوع در گیرم اگر فردی نظر خاصی دارد لطفا عنوان کنه ممنون میشم.
من این راه به نظرم رسید که در مورد بیشتر Procedure ها جواب میده ولی مشکل اینجاست که راه علمی نیست و اگر در کنار دیگر Query ها دستورات دیگی چون ساخت Table و... باشد در طول یک سطر به مشکل بر میخوریم.

بله یک سطر :
اگر هر دستور را دریک سطر به طور کامل بنویسیم بطور مثال

Create Procedure gholi1 AS select * from tbluser
Create Procedure gholi2 AS select * from tbluser
Create Procedure gholi3 AS select * from tbluser
Create Procedure gholi4 AS select * from tbluser

فقط کافی تو NET. اونو با Streamreader خط به خط بخونیم و اجرا کنیم.

اگر کسی راه حل دیگه ای داره لطفا پیشنهاد بده.
با تشکرhttp://www.p2p.dotnetsource.com/images/emoticons/24.gif

mohammed
شنبه 27 مهر 1387, 08:24 صبح
می توانید انتهای دستور را به سمی کالن (;) پایان دهید. اینطوری به خط جدید هم احتیاجی نیست.

mohammed
شنبه 27 مهر 1387, 08:33 صبح
ضمنا انتهای هر دستور تولید procedure یک دستور GO بگذارید.