diff --git a/callback_create.go b/callback_create.go index 5271dc29..c4d25f37 100644 --- a/callback_create.go +++ b/callback_create.go @@ -100,8 +100,11 @@ func createCallback(scope *Scope) { returningColumn = scope.Quote(primaryField.DBName) } - lastInsertIDReturningSuffix := scope.Dialect().LastInsertIDReturningSuffix(quotedTableName, returningColumn) lastInsertIDOutputInterstitial := scope.Dialect().LastInsertIDOutputInterstitial(quotedTableName, returningColumn, columns) + var lastInsertIDReturningSuffix string + if lastInsertIDOutputInterstitial == "" { + lastInsertIDReturningSuffix = scope.Dialect().LastInsertIDReturningSuffix(quotedTableName, returningColumn) + } if len(columns) == 0 { scope.Raw(fmt.Sprintf( diff --git a/dialects/mssql/mssql.go b/dialects/mssql/mssql.go index cb2714e0..a516ed4a 100644 --- a/dialects/mssql/mssql.go +++ b/dialects/mssql/mssql.go @@ -207,7 +207,8 @@ func (mssql) LastInsertIDOutputInterstitial(tableName, columnName string, column } func (mssql) LastInsertIDReturningSuffix(tableName, columnName string) string { - return "" + // https://stackoverflow.com/questions/5228780/how-to-get-last-inserted-id + return "; SELECT SCOPE_IDENTITY()" } func (mssql) DefaultValueStr() string {