Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

संग्रहीत प्रक्रिया जो डेटा को csv फ़ाइलों में निर्यात करती है केवल एक फ़ाइल को निर्यात करती है

मेरे लिए ठीक काम करने लगता है। मेरे पास कुछ सुझाव हैं:

(1) तारीख बनाने के लिए वह सभी स्ट्रिंग कॉन्सटेनेशन करना बंद करें। आप वही काम बहुत आसान तरीके से कर सकते हैं जैसे:

SELECT @StartDT = DATEADD(MONTH, DATEDIFF(MONTH, '19000101', @MinDOS), '19000101');

(2) varchar घोषित करना बंद करें बिना लंबाई के। और सही आउटपुट सुनिश्चित करने के लिए, मैं कनवर्ट करना पसंद करता हूं:

SET @FileLocation = 'C:\test\' + @TableName
   + CONVERT(CHAR(10), @StartDT, 120) + '.csv';

(3) संग्रहीत प्रक्रिया को चलाकर और फ़ोल्डर में आउटपुट का निरीक्षण करके कोड को "डीबगिंग" करने के बजाय, पहले अपने इनपुट की विवेक-जांच क्यों न करें? साथ ही, दिनांक के लिए दो चरों का उपयोग क्यों करें?

DECLARE 
   @StartDT DATE, 
   @TableName NVARCHAR(50), 
   @FileLocation VARCHAR(255);

SET @TableName = N'ViewAccountDetail';

SELECT @StartDT = DATEADD(MONTH, DATEDIFF(MONTH, '19000101', MIN(dos)), '19000101')
   FROM dbo.accn_demographics;

   PRINT @StartDT;
-- ^^^^^ debugging 101 - what month do we think we're starting at?

WHILE @StartDT < '20110901'
BEGIN
    SET @FileLocation = 'C:\test\' + @TableName
      + CONVERT(CHAR(10), @StartDT, 120) + '.csv';

      PRINT @FileLocation;
    --^^^^^ again, debugging 101 - what does the filename currently look like?

    --EXEC BCP_Text_File @TableName, @FileLocation    
    SET @StartDT = DATEADD(MONTH, 1, @StartDT);
END



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मामला जब खंड द्वारा आदेश के लिए बयान

  2. पेश है SQL सर्वर में कॉमन टेबल एक्सप्रेशन

  3. SQL सर्वर में OPTION(MAXDOP 1) का उपयोग करने का उद्देश्य क्या है?

  4. पहले ईएफ कोड में परिकलित कॉलम

  5. SqlDateTime.MinValue!=DateTime.MinValue, क्यों?