Yorumları: 122
Konuları: 36
Kayıt Tarihi: 19-12-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 232 Acemi
28-06-2019, Saat: 11:26
(Son Düzenleme: 28-06-2019, Saat: 11:35, Düzenleyen: TescilsizUzman.)
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!
Yorumları: 767
Konuları: 39
Kayıt Tarihi: 11-11-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.764 Uzman
28-06-2019, Saat: 11:30
(Son Düzenleme: 28-06-2019, Saat: 11:47, Düzenleyen: hi_selamlar.)
(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.
Yorumları: 238
Konuları: 28
Kayıt Tarihi: 05-05-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.193 Programcı
28-06-2019, Saat: 11:43
(Son Düzenleme: 28-06-2019, Saat: 11:47, Düzenleyen: elixir84.)
(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.
Yorumları: 122
Konuları: 36
Kayıt Tarihi: 19-12-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 232 Acemi
28-06-2019, Saat: 14:12
(Son Düzenleme: 28-06-2019, Saat: 14:13, Düzenleyen: Mericx.)
(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!
Yorumları: 820
Konuları: 135
Kayıt Tarihi: 07-12-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.030 Uzman
@ 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.
Yorumları: 238
Konuları: 28
Kayıt Tarihi: 05-05-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.193 Programcı
28-06-2019, Saat: 14:24
(Son Düzenleme: 28-06-2019, Saat: 14:26, Düzenleyen: elixir84.)
@ 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
|