Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak uzyskać wszystkie błędy wszystkich pakietów SSIS w rozwiązaniu?

Niestety, nie można tego osiągnąć za pomocą rozwiązania usług integracyjnych (w Visual Studio) bez otwierania pakietów lub wykonywania ich za pomocą DTExec Utility . Możesz jednak obejść ten problem i sprawdzić programowo, aby uzyskać błędy:

Obejście

  1. Utworzyłem aplikację WinForm za pomocą Visual Studio (za pomocą Vb.Net)
  2. Dodałem Microsoft.SqlServer.DTSPipelineWrap i Microsoft.SQLServer.ManagedDTS jako referencje
  3. Użyłem następującego kodu, aby zapętlić pakiety w określonym katalogu, sprawdzić poprawność i pobrać błędy do pliku dziennika:

    Dim strPackagesDirectory As String = "C:\Users\Admin\Desktop\New folder"
    Dim strOutputLogFile As String = "D:\1.txt"
    
    For Each strFile As String In IO.Directory.GetFiles(strPackagesDirectory, "*.dtsx", IO.SearchOption.TopDirectoryOnly)
    
        Dim pckg As New Microsoft.SqlServer.Dts.Runtime.Package
        Dim app As New Microsoft.SqlServer.Dts.Runtime.Application
    
        pckg = app.LoadPackage(strFile, Nothing)
        Dim obj = pckg.Validate(Nothing, Nothing, Nothing, Nothing)
    
        If pckg.Errors.Count > 0 Then
    
            Using sr As New IO.StreamWriter(strOutputLogFile, True)
                sr.WriteLine("")
                sr.WriteLine(strFile)
                sr.WriteLine("--------------")
                For Each err As Object In pckg.Errors
    
    
                    sr.WriteLine(err.Description)
    
                Next
    
                sr.WriteLine("==========")
                sr.Close()
            End Using
    
        End If
    Next
    

Referencje

  • https://msdn.microsoft.com/en-us/library/ms136090.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
  • https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.dts.runtime.package.aspx
  • https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.dts.runtime.dtscontainer.validate.aspx



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy istnieje sposób na uzyskanie listy wszystkich aktualnych tabel tymczasowych w SQL Server?

  2. SQL Server — jak zablokować tabelę do czasu zakończenia procedury składowanej

  3. POKAŻ WSZYSTKIE Daty między dwiema datami; jeśli nie istnieje wiersz dla określonej daty, pokaż zero we wszystkich kolumnach

  4. Przykłady konwersji „data” na „smalldatetime” w SQL Server (T-SQL)

  5. SQL Server zużywa dużo procesora podczas wyszukiwania wewnątrz ciągów nvarchar