50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

گپی کردن یک جدول به داخل جدول دیگر در پایگاه داده

سلام ، اگه بخوام یک سری از فیلدهای یک جدول در یک پایگاه داده رو در جدول دیگری از یک پایگاه داده در همان سرور کپی کنم باید از چه دستوری استفاده کنم؟

پرسیده شده در 1394/09/26 توسط
آواتار

3 پاسخ

1

از export و import استفاده کنین

پاسخ در 1394/09/26 توسط
5

سلام ببینید دو حالت وجود داره

حالت اول: شما در هر دو پایگاه داده ساختار جدول رو دارین و فقط میخواین داده های جدول از یگ پایگاه داده به جدول مشابه در پایگاه داده دیگه درج بشه

حالت دوم: شما جدول رو فقط در یک پایگاه داده دارین و میخواین همون جدول رو در پایگاه داده دیگه هم داشته باشین

راه حل حالت اول:

DB1 و DB2 اسم پایگاه داده ها هستند

Code
INSERT INTO DB2.dbo.Table_1 (id,name)
SELECT id,name
FROM DB1.dbo.Table_1

حتما دقت کنید که اسم پایگاه داده ها رو در کوئری بیارین و همچنین کلمه dbo رو بعد از اسم پایگاه داده ها بیارین مثل کد بالا

حالت دوم:

حالتی که میخواین یک جدول رو از یک پایگاه داده به پایگاه داده دوم کپی کنین بدون اینکه لازم باشه قبلش جدولی با همون ساختار در پایگاه داده دوم ایجاد کرده باشین

Code
select id,name
into DB2.dbo.newtable
from DB1.dbo.Table_2

در اینجا هم دقت کنین اسم جدولی که بعد از عبارت into میاد باید یک اسم جدید باشه و جدولی با همین نام در پایگاه داده دوم شما نباشه

پاسخ در 1394/09/26 توسط
آواتار
3

سلام خدمت شما

در جهت تکمیل صحبت های دوستان...

اگر تعداد جداول شما زیاد است می توانید از این 2 روش استفاده کنید Import & Exprot و Generate Scriptاستفاده کنید.

اگر جداول شما کم است،یعنی 1 یا دو تا جداول از روش خانم Salime استفاده کنید.

2 نکته:

1-در زمان اجرا دستور Select Into کلید و همینطور ایندکس های جداولتون به پایگاه داده مقصد انتقال داده نمی شود و برای رفع این مشکل می باست یا خودتان بصورت دستی در دیتابیس مقصد این کار رو انجام دهید یا اینکه از روش Generate Script استفاده کنید که بتونید کلیه قیدها ، تریگرها، ایندکس ها، فشرده سازی در سطح جداول و... را براحتی اتنقال بدید.

2- اگر خواستید فقط ساختار جداول رو بدون داده های موجود در پایگاه داده مقصد ایجاد کنید می بایست به این شکل عمل کنید:

روش اول:

Code
SELECT * INTO   destination_DBName.Schema_Name.destination table> FROM 
Source_DB.Schema_Name.Source_table where 1 = 2

روش دوم :

Code
SELECT  Top(0) * INTO DBName.Schema_Name.Table_Name  FROM
DBName.Schema_Name.Tbl_Name

موفق باشید

پاسخ در 1394/09/27 توسط

پاسخ شما