2012-09-19 20 views
6

मुझे थोक सम्मिलन कथन से शून्य मान डालने में समस्या हो रही है।एसक्यूएल सर्वर थोक सम्मिलित समय कॉलम में नल

दो कॉलम शून्य हैं और आईडी पहचान है।

int शून्य काम करने योग्य ठीक है, लेकिन time नहीं है।

  • यहां पर बल्क बयान:

    ID, IDStopLine, IDException, Hour, PositionHour, Day 
    
    ,28, 8, 12:20, 52, 0 
    
    ,29, 163, , 1, 
    

मतलब है कि मैं उन दोनों में nulls सम्मिलित करने के लिए कोशिश कर रहा हूँ:

BULK INSERT Circulation 
FROM '.....file.cs' 
WITH (FIRSTROW = 2, MAXERRORS = 0, FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '', KEEPNULLS) 
  • यहाँ सीएसवी के एक उद्धरण है कॉलम। परिणाम और शून्य के साथ ithe पूर्णांक स्तंभ 00:00:00

    enter image description here

  • +0

    जो कि एक बड़ा सम्मिलन कथन भी नहीं है, उदाहरण "एसपी" नामों के साथ एक एसपी का उपयोग करता है नामकरण – Diogo

    उत्तर

    1

    के साथ समय कॉलम "शून्य" के बदले "Col2 का डिफ़ॉल्ट मान" सम्मिलित करने के लिए, आप -k स्विच का उपयोग करने की आवश्यकता है या केपनल विकल्प, जैसा कि निम्न बीसीपी और बल्क इनसेट उदाहरणों में दिखाया गया है।

    USE AdventureWorks; 
    GO 
    BULK INSERT MyTestDefaultCol2 
        FROM 'C:\MyTestEmptyField2-c.Dat' 
        WITH (
         DATAFILETYPE = 'char', 
         FIELDTERMINATOR = ',', 
         KEEPNULLS 
        ); 
    GO 
    

    http://msdn.microsoft.com/en-us/library/ms187887.aspx

    2

    मैं क्यों समय स्तंभ 00:00:00 साथ सम्मिलित पता नहीं है, लेकिन यदि आप शून्य की जरूरत है तो यह ट्रिगर बनाना कोशिश करते हैं और FIRE_TRIGGER तर्क

    साथ बल्क सम्मिलित चलाया जा सकता है
    CREATE TRIGGER dateNull ON dbo.Circulation 
    INSTEAD OF INSERT 
    AS 
    BEGIN 
        INSERT dbo.Circulation(IdStopline, IdException, Hour, PositionHour, Day) 
        SELECT IdStopline, IdException, NULLIF(Hour, '00:00:00.0000000'), PositionHour, Day FROM inserted 
    END  
    
    BULK INSERT dbo.Circulation 
    FROM 'you_file.csv' 
    WITH (FIRSTROW = 2, 
         MAXERRORS = 0, FIELDTERMINATOR = ',', 
         ROWTERMINATOR = '\n', KEEPNULLS, FIRE_TRIGGERS) 
    
    संबंधित मुद्दे