diff --git a/internal/statements/statement.go b/internal/statements/statement.go index 93c56beb..a8bf8ba0 100644 --- a/internal/statements/statement.go +++ b/internal/statements/statement.go @@ -974,7 +974,14 @@ func (statement *Statement) convertSQLOrArgs(sqlOrArgs ...interface{}) (string, return "", nil, err } if r != nil { - newArgs = append(newArgs, string(r)) + // for nvarchar column on mssql, bytes have to be converted as ucs-2 external of driver + // for binary column, a string will be converted as bytes directly. So we have to + // convert bytes as string + if statement.dialect.URI().DBType == schemas.MSSQL { + newArgs = append(newArgs, string(r)) + } else { + newArgs = append(newArgs, r) + } } else { newArgs = append(newArgs, nil) }