mirror of
https://github.com/hanzoai/sqlbuilder.git
synced 2026-10-01 00:37:42 +00:00
Add returning support on SQL Server
This commit is contained in:
@@ -223,6 +223,15 @@ func (db *DeleteBuilder) BuildWithFlavor(flavor Flavor, initialArg ...interface{
|
||||
|
||||
db.injection.WriteTo(buf, deleteMarkerAfterDeleteFrom)
|
||||
|
||||
if flavor == SQLServer {
|
||||
if len(db.returning) > 0 {
|
||||
buf.WriteLeadingString("OUTPUT ")
|
||||
buf.WriteStringsPrefixed("DELETED.", db.returning, ", ")
|
||||
}
|
||||
|
||||
db.injection.WriteTo(buf, insertMarkerAfterReturning)
|
||||
}
|
||||
|
||||
if db.WhereClause != nil {
|
||||
db.whereClauseProxy.WhereClause = db.WhereClause
|
||||
defer func() {
|
||||
|
||||
@@ -200,6 +200,15 @@ func (ib *InsertBuilder) BuildWithFlavor(flavor Flavor, initialArg ...interface{
|
||||
ib.injection.WriteTo(buf, insertMarkerAfterCols)
|
||||
}
|
||||
|
||||
if flavor == SQLServer {
|
||||
if len(ib.returning) > 0 {
|
||||
buf.WriteLeadingString("OUTPUT ")
|
||||
buf.WriteStringsPrefixed("INSERTED.", ib.returning, ", ")
|
||||
}
|
||||
|
||||
ib.injection.WriteTo(buf, insertMarkerAfterReturning)
|
||||
}
|
||||
|
||||
if ib.sbHolder != "" {
|
||||
buf.WriteString(" ")
|
||||
buf.WriteString(ib.sbHolder)
|
||||
|
||||
@@ -301,6 +301,15 @@ func (ub *UpdateBuilder) BuildWithFlavor(flavor Flavor, initialArg ...interface{
|
||||
|
||||
ub.injection.WriteTo(buf, updateMarkerAfterSet)
|
||||
|
||||
if flavor == SQLServer {
|
||||
if len(ub.returning) > 0 {
|
||||
buf.WriteLeadingString("OUTPUT ")
|
||||
buf.WriteStringsPrefixed("INSERTED.", ub.returning, ", ")
|
||||
}
|
||||
|
||||
ub.injection.WriteTo(buf, insertMarkerAfterReturning)
|
||||
}
|
||||
|
||||
if flavor != MySQL {
|
||||
// For ISO SQL, CTE table names should be written after FROM keyword.
|
||||
if ub.cteBuilder != nil {
|
||||
|
||||
Reference in New Issue
Block a user