Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Datalar arası veri kopyalama hk
#1
Merhaba;

TESTDATA Datamdaki MusteriBilgi tablosundaki kayıtları, MUSTERI datamdaki MusteriBilgi tablosuna kopyalamak istiyorum olduğu gibi.
Aşağıdaki şekilde yaptığım zaman

SET IDENTITY_INSERT TESTDATA..MusteriBilgi OFF
insert into TESTDATA..MusteriBilgi 
Select * from MUSTERI..MusteriBilgi 
SET IDENTITY_INSERT TESTDATA..MusteriBilgi ON

Hata mesajı: 

Msg 8101, Level 16, State 1, Line 2

An explicit value for the identity column in table 'TESTDATA..MusteriBilgi ' can only be specified when a column list is used and IDENTITY_INSERT is ON.

Şeklinde hata alıyorum. Nerede hata yaptığım hakkında yardımcı olabilir misiniz?

Teşekkür ederim.
Don't fear the try!
Cevapla
#2
(28-06-2019, Saat: 11:26)Mericx Adlı Kullanıcıdan Alıntı: Merhaba;

TESTDATA Datamdaki MusteriBilgi tablosundaki kayıtları, MUSTERI datamdaki MusteriBilgi tablosuna kopyalamak istiyorum olduğu gibi.
Aşağıdaki şekilde yaptığım zaman

SET IDENTITY_INSERT TESTDATA..MusteriBilgi OFF
insert into TESTDATA..MusteriBilgi 
Select * from MUSTERI..MusteriBilgi 
SET IDENTITY_INSERT TESTDATA..MusteriBilgi ON

Hata mesajı: 

Msg 8101, Level 16, State 1, Line 2

An explicit value for the identity column in table 'TESTDATA..MusteriBilgi ' can only be specified when a column list is used and IDENTITY_INSERT is ON.

Şeklinde hata alıyorum. Nerede hata yaptığım hakkında yardımcı olabilir misiniz?

Teşekkür ederim.

Merhabalar,

Tablo daha önceden oluşturulmuş ise...
insert into KitaplarYedek select * from Kitaplar

Tablo oluştur ve kayıtları kopyala.
select * into KitaplarYedek from Kitaplar

***

Birde önce ON sonra OFF yapmanız gerekli sanırım.
"identity tanımlanmış kolona veri yazamazsınız. İdentity_insert özelliği kapalı."

veya

and ORDINAL_POSITION > 1
-- veya
and IS_NULLABLE = 'YES'
-- veya
and COLUMN_NAME not like '%ID%'
gibi şartlar ekleyerek id kolonunuzu insertin dışında bırakabilirsiniz.


Umarım işinize yarar.

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#3
(28-06-2019, Saat: 11:26)Mericx Adlı Kullanıcıdan Alıntı: Merhaba;

TESTDATA Datamdaki MusteriBilgi tablosundaki kayıtları, MUSTERI datamdaki MusteriBilgi tablosuna kopyalamak istiyorum olduğu gibi.
Aşağıdaki şekilde yaptığım zaman

SET IDENTITY_INSERT TESTDATA..MusteriBilgi OFF
insert into TESTDATA..MusteriBilgi 
Select * from MUSTERI..MusteriBilgi 
SET IDENTITY_INSERT TESTDATA..MusteriBilgi ON

Hata mesajı: 

Msg 8101, Level 16, State 1, Line 2

An explicit value for the identity column in table 'TESTDATA..MusteriBilgi ' can only be specified when a column list is used and IDENTITY_INSERT is ON.

Şeklinde hata alıyorum. Nerede hata yaptığım hakkında yardımcı olabilir misiniz?

Teşekkür ederim.

Merhaba,
Hatada bassettiği gibi SET IDENTITY_INSERT için sütun listesi gerekmektedir.

SET IDENTITY_INSERT TESTDATA..MusteriBilgi ON

INSERT Into TESTDATA..MusteriBilgi ([IdentityColumn], [Column2], [Column3], [Column4] ) 
SELECT [IdentityColumn], [Column2], [Column3], [Column4] FROM MUSTERI..MusteriBilgi

SET IDENTITY_INSERT TESTDATA..MusteriBilgi OFF

Şeklinde olmalı. Eğer tabloda çok sayıda sütun varsa aşağıdaki komutu kullanarak sütunları alabilirsin son virgüle dikkat et.

SELECT column_name + ','
FROM   information_schema.columns 
WHERE  table_name = 'TableName'
for xml path('')

Not : ilk önce SET IDENTITY_INSERT TESTDATA..MusteriBilgi ON
sonra SET IDENTITY_INSERT TESTDATA..MusteriBilgi OFF olacak bunada dikkat et.
Cevapla
#4
(28-06-2019, Saat: 11:43)elixir84 Adlı Kullanıcıdan Alıntı:
(28-06-2019, Saat: 11:26)Mericx Adlı Kullanıcıdan Alıntı: Merhaba;

TESTDATA Datamdaki MusteriBilgi tablosundaki kayıtları, MUSTERI datamdaki MusteriBilgi tablosuna kopyalamak istiyorum olduğu gibi.
Aşağıdaki şekilde yaptığım zaman

SET IDENTITY_INSERT TESTDATA..MusteriBilgi OFF
insert into TESTDATA..MusteriBilgi 
Select * from MUSTERI..MusteriBilgi 
SET IDENTITY_INSERT TESTDATA..MusteriBilgi ON

Hata mesajı: 

Msg 8101, Level 16, State 1, Line 2

An explicit value for the identity column in table 'TESTDATA..MusteriBilgi ' can only be specified when a column list is used and IDENTITY_INSERT is ON.

Şeklinde hata alıyorum. Nerede hata yaptığım hakkında yardımcı olabilir misiniz?

Teşekkür ederim.

Merhaba,
Hatada bassettiği gibi SET IDENTITY_INSERT için sütun listesi gerekmektedir.

SET IDENTITY_INSERT TESTDATA..MusteriBilgi ON

INSERT Into TESTDATA..MusteriBilgi ([IdentityColumn], [Column2], [Column3], [Column4] ) 
SELECT [IdentityColumn], [Column2], [Column3], [Column4] FROM MUSTERI..MusteriBilgi

SET IDENTITY_INSERT TESTDATA..MusteriBilgi OFF

Şeklinde olmalı. Eğer tabloda çok sayıda sütun varsa aşağıdaki komutu kullanarak sütunları alabilirsin son virgüle dikkat et.

SELECT column_name + ','
FROM   information_schema.columns 
WHERE  table_name = 'TableName'
for xml path('')

Not : ilk önce SET IDENTITY_INSERT TESTDATA..MusteriBilgi ON
sonra SET IDENTITY_INSERT TESTDATA..MusteriBilgi OFF olacak bunada dikkat et.

Yorumunuz için teşekkür ederim. Evet sizin dediğiniz şekilde de düzgün ekledi. Birde başka sorum var eğer aktaracağım tabloda daha önceden kayıt var ise aktarmama engel oluyor. Ama ben eski kayıtları silmeden direk olanların üzerine yazmak istiyorum bu mümkün mü?

(28-06-2019, Saat: 11:30)hi_selamlar Adlı Kullanıcıdan Alıntı:
(28-06-2019, Saat: 11:26)Mericx Adlı Kullanıcıdan Alıntı: Merhaba;

TESTDATA Datamdaki MusteriBilgi tablosundaki kayıtları, MUSTERI datamdaki MusteriBilgi tablosuna kopyalamak istiyorum olduğu gibi.
Aşağıdaki şekilde yaptığım zaman

SET IDENTITY_INSERT TESTDATA..MusteriBilgi OFF
insert into TESTDATA..MusteriBilgi 
Select * from MUSTERI..MusteriBilgi 
SET IDENTITY_INSERT TESTDATA..MusteriBilgi ON

Hata mesajı: 

Msg 8101, Level 16, State 1, Line 2

An explicit value for the identity column in table 'TESTDATA..MusteriBilgi ' can only be specified when a column list is used and IDENTITY_INSERT is ON.

Şeklinde hata alıyorum. Nerede hata yaptığım hakkında yardımcı olabilir misiniz?

Teşekkür ederim.

Merhabalar,

Tablo daha önceden oluşturulmuş ise...
insert into KitaplarYedek select * from Kitaplar

Tablo oluştur ve kayıtları kopyala.
select * into KitaplarYedek from Kitaplar

***

Birde önce ON sonra OFF yapmanız gerekli sanırım.
"identity tanımlanmış kolona veri yazamazsınız. İdentity_insert özelliği kapalı."

veya

and ORDINAL_POSITION > 1
-- veya
and IS_NULLABLE = 'YES'
-- veya
and COLUMN_NAME not like '%ID%'
gibi şartlar ekleyerek id kolonunuzu insertin dışında bırakabilirsiniz.


Umarım işinize yarar.

Kolay gelsin.

Yorumunuz için teşekkür ederim. benim bir diğer sorum var, aktaracağım tabloda daha önceden kayıt varsa insert etmeme izin vermiyor illa tabloyu temizlemem gerekiyor. Ama ben olan kayıtların üzerine ilave olarak kayıt kopyalamam gerek bu mümkün müdür?
Don't fear the try!
Cevapla
#5
@Mericx önce yapmak istediğine net bir karar vermelisin
kayıt varsa update yoksa insert yapacaksan 2 adet iş yapman lazım önce elindeki kayıtları join yapıp var olanları update yap
sonra yeni işlem olarakta yine join işlemi sonuc olmayanları insert et böylece fazladan update yapmamış olursun
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#6
@Mericx  Kayıtlar varsa diyorsun hangi kayıtlara bakacaksanız not in komutunu kullanabilirsiniz.


SET IDENTITY_INSERT TESTDATA..MusteriBilgi ON

INSERT Into TESTDATA..MusteriBilgi ([IdentityColumn], [Column2], [Column3], [Column4] ) 
SELECT [IdentityColumn], [Column2], [Column3], [Column4] FROM MUSTERI..MusteriBilgi where [IdentityColumn] NOT IN (SELECT [IdentityColumn] FROM TESTDATA..MusteriBilgi)

SET IDENTITY_INSERT TESTDATA..MusteriBilgi OFF
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Uzak Sunucuya (Server) Lokalden Veri Tabanı Oluşturma Hk. glagher 7 485 19-04-2024, Saat: 12:32
Son Yorum: glagher
  MSSQL Data downgrade (Alt sürüme veri aktarma) işlemleri adelphiforumz 0 538 23-03-2023, Saat: 11:13
Son Yorum: adelphiforumz
  veri aktarımı esnasında kontrol denizfatihi 6 4.319 18-10-2019, Saat: 23:53
Son Yorum: denizfatihi
  Veri Tabanında Random Değişiklikler Hk. pro_imaj 5 4.330 11-07-2019, Saat: 15:28
Son Yorum: pro_imaj
  MSSQL Veri Tabanı Yedekleme Sıkıştırma ve FTP ye Gönderim - Delphi Konsol Uygulaması mad85 2 3.210 07-08-2018, Saat: 08:49
Son Yorum: Tuğrul HELVACI



Konuyu Okuyanlar: 1 Ziyaretçi