diff --git a/src/Microsoft/SqlServer/Management/Smo/LoginBase.cs b/src/Microsoft/SqlServer/Management/Smo/LoginBase.cs index c5bf88cb..7a694635 100644 --- a/src/Microsoft/SqlServer/Management/Smo/LoginBase.cs +++ b/src/Microsoft/SqlServer/Management/Smo/LoginBase.cs @@ -1424,7 +1424,7 @@ public DatabaseMapping[] EnumDatabaseMappings() { CheckObjectState(); - DatabaseMapping[] mapping = null; + DatabaseMapping[] mapping = new DatabaseMapping[0]; if (!this.IsDesignMode) { Urn uMappings = this.Urn.ToString() + "/DatabaseMapping"; @@ -1434,18 +1434,13 @@ public DatabaseMapping[] EnumDatabaseMappings() if (dt.Rows.Count > 0) { mapping = new DatabaseMapping[dt.Rows.Count]; - } - else - { - return null; - } - - for (int iRow = 0; iRow < dt.Rows.Count; iRow++) - { - DataRow dr = dt.Rows[iRow]; - mapping[iRow] = new DatabaseMapping(Convert.ToString(dr["LoginName"], SmoApplication.DefaultCulture), - Convert.ToString(dr["DBName"], SmoApplication.DefaultCulture), - Convert.ToString(dr["UserName"], SmoApplication.DefaultCulture)); + for (int iRow = 0; iRow < dt.Rows.Count; iRow++) + { + DataRow dr = dt.Rows[iRow]; + mapping[iRow] = new DatabaseMapping(Convert.ToString(dr["LoginName"], SmoApplication.DefaultCulture), + Convert.ToString(dr["DBName"], SmoApplication.DefaultCulture), + Convert.ToString(dr["UserName"], SmoApplication.DefaultCulture)); + } } } else diff --git a/src/Microsoft/SqlServer/Management/SqlEnum/xml/DatabaseMappings.xml b/src/Microsoft/SqlServer/Management/SqlEnum/xml/DatabaseMappings.xml index 97b6332a..74948ea5 100644 --- a/src/Microsoft/SqlServer/Management/SqlEnum/xml/DatabaseMappings.xml +++ b/src/Microsoft/SqlServer/Management/SqlEnum/xml/DatabaseMappings.xml @@ -29,12 +29,12 @@ begin - exec('use ' + @db_name + ' INSERT #loginmappings select suser_sname(u.sid), db_name(), u.name, null from dbo.sysusers u where suser_sname(u.sid) is not null') + exec('use ' + @db_name + ' INSERT #loginmappings select login_name, db_name(), u.name, null from dbo.sysusers u CROSS APPLY (SELECT suser_sname(u.sid) AS login_name) AS ln where ln.login_name is not null') - exec('use ' + @db_name + ' INSERT #loginmappings select suser_sname(u.sid), db_name(), u.name, null from sys.database_principals AS u where suser_sname(u.sid) is not null') + exec('use ' + @db_name + ' INSERT #loginmappings select login_name, db_name(), u.name, null from sys.database_principals AS u CROSS APPLY (SELECT suser_sname(u.sid) AS login_name) AS ln where ln.login_name is not null')