My mistake! The keys are unique, including compound keys. My problem was matching the columns of the SqlBulCopy class. I was doing
Public Sub DoBulKCopy(dt As DataTable, cns As String)
Dim cn As New SqlConnection(cns)
cn.Open()
Dim copy As New SqlBulkCopy(cn)
For i As Integer = 0 To dt.Columns.Count - 1
copy.ColumnMappings.Add(i,i)
Next
Public Sub DoBulKCopy(dt As DataTable, cns As String)
Dim cn As New SqlConnection(cns)
cn.Open()
Dim copy As New SqlBulkCopy(cn)
For i As Integer = 0 To dt.Columns.Count - 1
copy.ColumnMappings.Add(dt.Columns(i).ColumnName, dt.Columns(i).ColumnName)
Next
, .