Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Prosedur tersimpan yang mengekspor data ke file csv hanya mengekspor ke satu file

Tampaknya bekerja dengan baik untuk saya. Saya punya beberapa saran:

(1) berhenti melakukan semua rangkaian string itu untuk membuat tanggal. Anda dapat melakukan hal yang sama dengan lebih mudah seperti di:

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

(2) berhenti mendeklarasikan varchar tanpa panjang. Dan untuk memastikan hasil yang tepat, saya lebih suka mengonversi:

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

(3) alih-alih "men-debug" kode dengan menjalankan prosedur tersimpan dan memeriksa output di folder, mengapa tidak memeriksa kewarasan input Anda terlebih dahulu? Juga, mengapa menggunakan dua variabel untuk tanggal?

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. 5 Fitur Teratas yang Perlu Disediakan Platform Pemantauan Kinerja Basis Data SQL Server Anda

  2. datetime2 vs smalldatetime di SQL Server:Apa Bedanya?

  3. Ketahui hubungan antara semua tabel database di SQL Server

  4. Perbaiki "Konversi gagal saat mengonversi nilai varchar" Saat Mencoba Menggabungkan di SQL Server

  5. UNTUK XML PATH(''):Keluar dari karakter khusus