Skip to content

Commit c3cbe3e

Browse files
committed
Fixed SQL Server parametrised insert
1 parent 016ae1f commit c3cbe3e

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

db/sql/insert.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,18 @@ func (g *sqlGateway) bulkInsertParameterized(tableName string, rows [][]interfac
4747
var parametersPlaceholder = strings.Join(ret, ",")
4848
valuesReference = append(valuesReference, fmt.Sprintf("(%s)", parametersPlaceholder))
4949
}
50+
} else if g.dialect.name() == db.MSSQL {
51+
// SQL Server uses @p1, @p2, etc. for parameter placeholders
52+
var i = 0
53+
for j := 0; j < len(rows); j++ {
54+
var ret = make([]string, len(columnNames))
55+
for k := 0; k < len(columnNames); k++ {
56+
ret[k] = fmt.Sprintf("@p%d", i+1)
57+
i++
58+
}
59+
var parametersPlaceholder = strings.Join(ret, ",")
60+
valuesReference = append(valuesReference, fmt.Sprintf("(%s)", parametersPlaceholder))
61+
}
5062
} else {
5163
// Other SQL databases use ? for parameter placeholders
5264
for j := 0; j < len(rows); j++ {

0 commit comments

Comments
 (0)