PDA

View Full Version : copy گرفتن از sp های یه dbو بردن آن در db دیگر



maryam_jamshid
سه شنبه 03 بهمن 1385, 11:02 صبح
سلام دوستان
چطوری میشه sp های یه database را روی بخش storeprocedure مربوط به یه database دیگه ببریم؟
با تشکر

whitehat
سه شنبه 03 بهمن 1385, 11:17 صبح
یکی از راههایی که می توانید استفاده کنید درست کردن Script های مربوطه است و اجرا کردن آن بر روی پایگاه داده مورد نظر است . (در 2005) کافیه روی Database راست کلیک کنید Task و سپس Generate Script را مشخص کنید و طبق Wizard عمل کنید

darvishiali
سه شنبه 03 بهمن 1385, 19:34 عصر
DECLARE @SPName varchar(100)

DECLARE @SPDef nvarchar(4000)


SET @SPName='نام Stored Procedure ای که می خواهید ساختارش را بدست آورید'

SET @SPDef=

(SELECT TOP 1 B.Text
FROM sysobjects A INNER JOIN syscomments B ON A.id=B.id
WHERE A.type='p' AND A.Name=@SPName)








این کوئری، تعریف SP نام برده شده را در متغیر @SPDef قرار می ده. حالا اگه می خواین اونو توی یه دیتابیس دیگه بسازین، کافیه اون دیتابیس رو USE کنین و این متغیر رو (که حاوی یه T-SQL هست، اجرا کنین)





USE MyDBName

exec sp_executesql @SPDef

nokhod
شنبه 21 بهمن 1385, 10:26 صبح
سلام به دوستان.

خوب من SPهام زیاده و برایه هر کدوم که نی تونم این کد رو بنویسم!!!

تازه چجوری اینا رو روی سرور بذارم؟ (با Export Data فقط Table و View ها انتقال داده می شوند.)

AminSobati
شنبه 21 بهمن 1385, 11:11 صبح
طبق روشی که آقای whitehat ذکر کردند (در 2000 هم این روش قابل استفاده هستش)

zerobit-ltd
شنبه 21 بهمن 1385, 12:21 عصر
تو بخش stored procedure، اونهایی رو که می خوای انتخاب کن. بعد راست کلیک کن و گزینه Generate Script رو انتخاب کن. کد sp های شما تو یه فایل ذخیره می شن. بعد اون فایل رو database مقصد، run کن.

nokhod
یک شنبه 22 بهمن 1385, 14:36 عصر
ممنون ولی با این روش Roleها فرستاده نمی شن.

ببخشید اگه میشه لطف کنید و به من بگید اشکال کار من چیه:

Control Panel سایتم Plesk هست.تو اون یه DataBase ایجاد کردم(فرض کنبد با نام TestDataBase) و برای اون یه User (فرض کنید به نام TestUser) و یه Password ساختم. حالا از طریق Enterprise Manager روی DataBaseام کلیک راست می کنم و گزینه Export Data رو انتخاب می کنم. بعد برای بخش destination آی پی سرور و با TestUser و با پسوردش به TestDataBase وصل میشم. بعد از Radio Buttonها گزینه سوم که میگه Object ها رو انتقال میده انتخاب کردم و بعد Finish رو می زنم. بعد از کپی کردن چند تا object ارور می ده و میگه:


User "TestUser" is invalid for database "sitebuilder"


من توی DataBaseهای سرور sitebuilder رو دیدم ولی اونو که انتخاب نکردم!!!!!
برای رفع این مشکل چکار کنم؟

ممنون از شما.

AminSobati
یک شنبه 22 بهمن 1385, 17:24 عصر
باید کاربر TestUser عضو db_owner شده باشه (از Admin سوال کنید)