PDA

View Full Version : آیا انتقال اطلاعات بین دو بانک با دستور insert میشه



shadi shiton bala
یک شنبه 09 دی 1386, 11:18 صبح
سلام
من می خواهم اطلاعات از بانک اول جدول a1 بخوانم و در بانک دوم جدول b1 که ساختاری کاملا شبیه به هم دارند بریزم
از این دستور هم ایراد می گیرد

insert into b1 in 'data1' 'sql' select * frome a1 where code=1
البته این کد را از کتاب vb6 پیدا کردم

whitehat
یک شنبه 09 دی 1386, 12:07 عصر
از اسامی کامل جدول ها و شما های آن استفاده کنید (اگه بر روی یک سرور هستند و الا داستان جدا گانه ای دارد)
مثلا:
Dbo.database.table

shadi shiton bala
یک شنبه 09 دی 1386, 12:32 عصر
ممنون از جواب شما ولی این دستور کار نمی کنه حتی برای یک select ساده
البته شاید من نمی توانم از اون استفاده کنم
می شه بی زحمت یک مثال کوچک بزنید اون طوری که خودتون استفاده کردین

shadi shiton bala
یک شنبه 09 دی 1386, 13:23 عصر
اگر راه دیگری هم سراغ دارید بگید لطفا
می خواهم بعضی از اطلاعات این بانک را در بانک دیگر انتقال بدم هر دو بانک در یک سرور هستند

MShirzadi
یک شنبه 09 دی 1386, 13:31 عصر
ببینید زمانی که می خواهید بین دو تا دیتابیس انتقال اطلاعات کنید باید از نام کامل جدول ها استفاده کنید (همانطور که دوست خوبمون آقای Whitehat گفتند) بدین شکل که:

مثلا در Database ی با نام DB1 هستیم و یک DataBase با نام DB2 داریم و در هر کدام از این DB ها یک Table به نام TblA وجود دارد که ساختار آنها کاملا شبیه به هم است در این صورت
برای انتقال اطلاعات از Database با نام DB1 به Database با نام DB2 داریم:

Insert into DB1.dbo.TblA Select* From DB2.dbo.tblA

SabaSabouhi
یک شنبه 09 دی 1386, 13:38 عصر
با سلام
اگه دقیقاً ساختار یکى باشه(1)، Identity نداشته باشى(2) و تریگرى که مشکل ایجاد کنه نداشته باشى(3) این جواب مى‌ده:



INSERT INTO A1 SELECT * FROM B1



اگه ساختار یکى نباشه بجاى * SELECT باید عبارت رو به شکلى بنویسى که دقیقاً مشابه ساختار جدول مقصد باشه.



INSERT INTO A1 SELECT Col1, Col2, Col3 FROM B1


اگه ستونى به شکل Identity داشته باشى باید دو کار کنى نخست این که مجوز INSERT کردن به ستون Identity رو بدى و دوم این که باید دقیقاً ستون‌ها رو مشخص کنى:



SET IDENTITY_INSERT 'A1' ON
INSERT INTO A1 (Col1, Col2, Col3) SELECT Col1, Co2, Col3 FROM B1
SET IDENTITY_INSERT 'A1' OFF



اگه هم در جدول مقصد تریگرى دارى که ممکنه انتقال رو مشکل کنه با فرمان Alter Table تریگر مربوطه رو حذف کن و پس از انتقال دوباره اونو اضافه کن.

صبا صبوحى

shadi shiton bala
یک شنبه 09 دی 1386, 13:38 عصر
:گیج:درست شد خیلی خیلی ممنون

:تشویق::تشویق: