diff --git a/error_translator.go b/error_translator.go index a4243cd..59b322a 100644 --- a/error_translator.go +++ b/error_translator.go @@ -9,6 +9,7 @@ import ( // The error codes to map mssql errors to gorm errors, here is a reference about error codes for mssql https://learn.microsoft.com/en-us/sql/relational-databases/errors-events/database-engine-events-and-errors?view=sql-server-ver16 var errCodes = map[int32]error{ 2627: gorm.ErrDuplicatedKey, + 2601: gorm.ErrDuplicatedKey, 547: gorm.ErrForeignKeyViolated, } diff --git a/error_translator_test.go b/error_translator_test.go index 44b0c42..da295df 100644 --- a/error_translator_test.go +++ b/error_translator_test.go @@ -27,6 +27,11 @@ func TestDialector_Translate(t *testing.T) { args: args{err: mssql.Error{Number: 2627}}, want: gorm.ErrDuplicatedKey, }, + { + name: "it should return ErrDuplicatedKey error if the error number is 2601", + args: args{err: mssql.Error{Number: 2601}}, + want: gorm.ErrDuplicatedKey, + }, { name: "it should return ErrForeignKeyViolated the error number is 547", args: args{err: mssql.Error{Number: 547}},