2013-05-14 8 views
8

Bir yanıt arıyordum ama bulamıyorum.SQL Server - Birincil anahtar olmadan komut dosyası oluştur

Verilerimin oluşturulmuş bir betiğini oluşturmaya çalışıyorum (tüm INSERT INTO komutlarını kastediyorum). Erişim izinleri nedeniyle, SET IDENTITY_INSERT TABLO KAPALI ve AÇIK yapamıyorum (Kullanıcı uygulamalarını Staging'de kullanıyorum)

Bu komut dosyasını SQL Server Manager'da yapmanın ve alandan kaçınmanın bir yolu var. birincil anahtar ile? Tüm özellikleri (birincil, benzersiz, vb.) Yanlış olarak ayarlıyorum, ancak betik hala bu alanı gönderiyor (Örneğin, Recid 1, 2, 3, vb.).

Ben SQL Server 2012.

Saygılarımla kullanıyorum

,

(++ Notepad ile çıkarın hariç) herhangi bir çözüm preciated edilir. ingilizcem :)

UPDATE/önce downvoted düzenlemeyi ve üzgün isteyiniz: My yapılandırma komut dosyası için:

enter image description here

Sonuçlar alıyorum:

SET IDENTITY_INSERT -TABLE- ON 
INSERT INTO TABLE (ID,Field1) VALUES (1,'value') 

cevap

11

Biraz iş, ama bazen bu şeyler yapmanın kullanışlı, hızlı ve kirli yolu:

SELECT 'INSERT INTO TABLE (Field1) VALUES (''' + Field1 + ''')' FROM TABLE 

Sonuç kümesi, tabla tablosundaki her satır için her ekleme deyimi için bir satır olacaktır. INSERT deyimi, INSERT ifade metninin Field1'deki değerlerle birleştirilmesiyle oluşturulur.

+0

OMG, hiç bu kadar kolay düşünmemiştim! Getirmek imleç ile bazı SP yapmak düşünüyorum. LOL. Çok teşekkürler. –

+2

Verileri dönüştürmeniz ve normal ifadeler kullanmanız gerekmediğinde birçok durumda kullanışlı oluyor ... bu bana yıllar içinde birkaç kez sahip oldu! – FlipperPA

+0

ve null nedir? Null (smalldatetime alanı) ile bazı kayıtlarım var –