View Full Version : خروجی T-SQL از داده های درون یک جدول
javad3151
یک شنبه 25 فروردین 1387, 07:49 صبح
سلام
چطور میشه از داده های درون یک جدول خروجی T-SQL گرفت؟ میخوام داده ها رو به یک دیتابیس دیگه منتقل کنم و هیچ راه دیگه ای هم ندارم
Kamyar.Kimiyabeigi
یک شنبه 25 فروردین 1387, 08:02 صبح
insert into [DB Name].[Owner Name].[Tbale Name] from
select * from [DB Name].[Owner Name].[Tbale Name]
javad3151
یک شنبه 25 فروردین 1387, 10:20 صبح
فکر کنم درست منظورم رو بیان نکردم، مشکل من اینجاست که دیتابیس ها در 2 سرور هستند که امکان اتصال به همدیگه رو ندارند(فرض کنید در 2 شهر مختلف) و باید اطلاعاتی رو که در یک جدول هستند رو بصورت T-SQLمنتقل کنند.
Hamid.Kad
یک شنبه 25 فروردین 1387, 10:38 صبح
انتقال اطلاعات بصورت T-Sql یه کم مبهمه
شما می تونید با استفاده از توضیحاتی که کامیار خان فرمودند اطلاعاتی رو که لازم دارید به یه جدول منتقل کنید(اگه از چند تا جدول باید بخونید و گرنه که خود همون جدول اصلی رو استفاده کنید). بعد دیگه همه بلایی میشه سرش آورد. مثلاً backup و restore کنید یا فایل رو منتقل کنید یا مثلاً Replication و ...
Kamyar.Kimiyabeigi
یک شنبه 25 فروردین 1387, 15:10 عصر
شما میتونین از Import Data و Export Data استفاده کنین
javad3151
سه شنبه 27 فروردین 1387, 11:06 صبح
فرض کنید یک جدول با دو فیلد داریم ، به این صورت:
ID Username
1 test
2 test2
...
حالا میخواهید دیتای این جدول رو بصورت زیر خروجی بگیرید:
Insert into Table1 (ID,Username) values (1,test)
Insert into Table1 (ID,Username) values (2,test2)
....
از Replication و Export مستقیم به دیتابیس دیگه، نمیتونم استفاده کنم ، چون با هم مرتبط نیستند و در دو مکان مختلف هستند .
از ً backup و restore هم نمیشه استفاده کرد، چون اطلاعات همپوشانی دارند و دیتابیس مقصد باید اطلاعات خودش رو حفظ کنه
Kamyar.Kimiyabeigi
سه شنبه 27 فروردین 1387, 16:19 عصر
چرا از LinkServer استفاده نمیکنین؟
Chabok
چهارشنبه 28 فروردین 1387, 01:07 صبح
با سلام
راستش من قبلا چنین چیزی رو برای SQL Server نوشته ام
که امیدوارم مشکلتون حل بشه
http://i26.tinypic.com/33o350w.jpg
البته فکر کنم عکس کاملا گویای مطلب باشه . به هر حال توضیحات بخش ها :
شروع :
در بخش DataSource شما ابتدا باید مشخصات دیتابیس رو بدین .
سپس در قسمت Select Query باید دستور سلکت خودتون رو بنویسید .
سپس کلید Get Data را بزنید .
هم اکنون اگر اطلاعات دیتابیس صحیح باشد اطلاعات سلکت شده نمایش داده خواهند شد .
حالا به مهمترین و جالب ترین بخش کار میرسیم :
شما باید یک Template از دستور Insert خود بنویسید تا این قالب برای همه رکوردها تکرار شود و دستورات شما ساخته شوند .
قوانین قالب :
تمامی فیلدهایی که میخواهید استفاده کنید باید تعریف شوند . یعنی * نداریم .
تا جایی که یادمه اسم فیلدها و پارامترش Case-Sensitive بودند .
مقادیر پارامتر یعنی خود اطلاعات باید طبق تصویر با @ شروع شوند .
نکات :
پارامتر فیلدهای رشته ای رو مانند تصویر درون ' ' قرار دهید.
میتوانید در این قسمت نام فیلد ID خودتون رو ذکر نکنید تا در دیتابیس مقصد کدهای جدید بصورت Identity جدید ایجاد شوند (دقیقا مانند تصویر)
(از قالبی که در تصویر هست ایده بگیرید)
ادامه :
سپس کلید Build Query رو بزنید .
همین طور که مشاهده میکنید دستورات شما آماده هستند .
سپس میتوانید حتی این دستورات رو در دیتابیس مقصد هم اجرا کنید .
برای این کار از قسمت بعدی نرم افزار استفاده کنید .
مقادیر خواسته شده رو وارد کنید و Execute رو بزنید .
پایان
این نرم افزار رو با دات نت 2 و فکر کنم حدود 2 سال پیش نوشتم .
دوستان اگر با دقت بیشتری به تصویر توجه کنید احتمال زیاد به مشکلی بر نخواهید خورد .
موفق و پیروز باشید .
javad3151
چهارشنبه 28 فروردین 1387, 07:29 صبح
خیلی عالیه ، فقط با مقادیر NULL مشکل داره و خطا میده ؛ ولی کار من رو راه انداخت ، باز هم تشکر
ولی واقعا عجیبه که SQL Server به این همه امکانات ، این خروجی رو نمیده ، یکی از دوستانم میگفت MySql به راحتی اینکار رو انجام میده!!!!!!!!!!!!
Chabok
چهارشنبه 28 فروردین 1387, 11:06 صبح
سلام
فقط با مقادیر NULL مشکل داره و خطا میده ؛
بله . درست میفرمایید . البته اون روزها NULL هنوز نیومده بود :لبخند:
یکی از دوستانم میگفت MySql به راحتی اینکار رو انجام میده!!!!!!!!!!!!
بله . MySql حتی بصورت فشرده شده GZip هم براتون خروجی میده .
موفق باشید . خدانگهدار
sharpboy
شنبه 21 اردیبهشت 1387, 14:50 عصر
SQLDumper
ابزاریه برای اینکار
AminSobati
شنبه 21 اردیبهشت 1387, 16:21 عصر
برای انتقال اطلاعات بین دو سرور، اگر ارتباط بیشنون وجود داره (از نظر شبکه ای) میتونین براحتی Linked Server تعریف کنین که در زمان و هزینه صرف جویی میکنه. اگر ارتباط شبکه ای نیست، استفاده از Export to Text یا Dump کردن روش خوبیه
Chabok
یک شنبه 22 اردیبهشت 1387, 12:36 عصر
استفاده از Export to Text ... روش خوبیه
با سلام
آیا خود محیط Management Studio این امکان رو داره ؟
یا در کل منظورتون Export To text است ؟
یعنی برای همین خروجی رکوردها بصورت دستور ، راه دیگری هم هست ؟
AminSobati
دوشنبه 23 اردیبهشت 1387, 15:06 عصر
بله روی دیتابیس Right Click کنین و Export انجام بدین
javad3151
سه شنبه 24 اردیبهشت 1387, 07:39 صبح
بله روی دیتابیس Right Click کنین و Export انجام بدین
ولي استاد؛ از كدوم بخش Export ميشه همچين خروجي گرفت؟؟ تا جايي كه من ديدم فقط خروجي به ساير ديتابيس ها و خروجي text داره!
smakhavan
جمعه 17 خرداد 1387, 09:13 صبح
Backup Database و سپس در مقصد Restore Database
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.