public/utility/Write-AtlassianData.ps1

function Write-AtlassianData {
    [CmdletBinding()]
    param (
        # The data to be written
        [Parameter(Mandatory, Position=0)]
        [AllowNull()]
        [AllowEmptyCollection()]
        [object[]]
        $Data,

        # The connection string for the database server
        [Parameter(Mandatory, Position=1)]
        [string]
        $DatabaseServer,

        # The name of the database to write to
        [Parameter(Mandatory, Position=2)]
        [string]
        $DatabaseName,

        # The table's schema name
        [Parameter(Mandatory, Position=3)]
        [string]
        $SchemaName,

        # The name of the table to write to
        [Parameter(Mandatory, Position=4)]
        [string]
        $TableName,

        # Whether or not to force creation of the object
        [Parameter()]
        [switch]
        $Force
    )
    begin {
        $count = $Data.Count
        Write-Verbose "Writing $count record(s) to table $TableName"
    }
    
    process {
        if ($count -gt 0) {
            $take = 1000
            for($i=0; $i -lt $count; $i+=$take){

                $sqlParams = @{
                    InputData = $Data[$i..($i+$take-1)]
                    ServerInstance = $DatabaseServer
                    DatabaseName = $DatabaseName
                    SchemaName = $SchemaName
                    TableName = $TableName
                    Force = $Force
                    ConnectionTimeout = 60
                    Timeout = 60
                }
                Write-SqlTableData @sqlParams
            }
        }
    }
    end {
        
    }
}