about_DbData.help.txt

TOPIC
    about_DbData
 
SHORT DESCRIPTION
    DbData, is the awesome replacement for Invoke-Sqlcmd and Invoke-Sqlcmd2.
 
LONG DESCRIPTION
    Invoke-Sqlcmd is littered with bugs, both past and current. DbData fulfills
    the promise of Invoke-Sqlcmd with better PowerShell semantics though without
    trying to be a drop-in replacement.
 
    * Safely build connection strings and connections
    * Construct commands with really injection-safe parameters
    * Execute statements, stored procedure, etc, while retaining full message
      output (to the verbose stream and an optional arraylist variable)
    * Read, and alter, table data
    * Bulk copy tables
    * Optionally use SQL transactions
    * Optionally wrap all of the above with retries for deadlocks and timeouts
 
REQUIREMENTS
    Requires PowerShell 2.0 or later.
    Requires .NET 3.5 or later installed.
    Options for New-DbConnection vary between .NET Framework versions. Some
    were added as recently as 4.6.1.
 
EXAMPLE #1
    Connect to a database and get rows back.
 
    $serverInstance = ".\SQL2016"
    New-DbConnection $serverInstance master | New-DbCommand "Select * From sys.master_files" | Get-DbData
 
EXAMPLE #2
    Connect to a database and get multiple result sets into different tables.
 
    $serverInstance = ".\SQL2016"
    $dbData = New-DbConnection $serverInstance master | New-DbCommand "Select * From sys.databases; Select * From sys.master_files" | Get-DbData -TableMapping "Databases", "Files" -As DataSet
    $dbData.Tables["Databases"]
    $dbData.Tables["Files"]
 
EXAMPLE #3
    Connect to a database, begin a transaction, add data, and then rollback.
 
    $serverInstance = ".\SQL2016"
    $dbData = New-DbConnection $serverInstance msdb | New-DbCommand "Select * From dbo.suspect_pages" | Enter-DbTransaction -PassThru | Get-DbData -As DataTables
    # Add a record
    $dbData.Alter(@{
        database_id = 1
        file_id = 1
        page_id = 1
        event_type = 1
        error_count = 1
        last_update_date = (Get-Date).ToDateTime($null)
    })
    Exit-DbTransaction $dbData -Rollback
 
LINKS
    https://github.com/codykonior/DbData