Запрос на присоединение к серверу SQL не включает имена таблиц для столбцов с одинаковыми именами. - PullRequest
0 голосов
/ 01 мая 2018

Я перевожу базу данных jet на ms-sql, приложение хорошо разработано и содержит десятки тысяч строк кода и, возможно, более 100 тысяч строк кода.

При использовании наборов записей adodb (в vb.net) для запроса базы данных Jet и объединения таблиц, имеющих столбцы с одинаковыми именами (выберите a.foo, b.foo), вы получите TableName.Column, возвращаемый для тех полей, которые имеют то же имя.
Но при запросе к серверу sql (MS SQL) вы получаете только ColumnNames, поэтому, если у вас есть две таблицы a и b, и каждая из которых имеет столбец с именем foo, вы получите два столбца, оба с именем "foo", где, как и с база данных Jet вы получаете a.foo и b.foo

Я полностью осведомлен , что вы можете использовать "as" в вашем операторе select для псевдонима имени столбца (выберите a.foo как a_foo, b.foo как b_foo), но Я не хочу этого делать - у меня нет времени, чтобы просмотреть тысячу или около того операторов выбора в приложении.

Поэтому я спрашиваю, знает ли кто-нибудь о способе, которым SQL мог бы вести себя как база данных Jet и возвращать TableName.ColumnName для полей с похожим именем,

или если кто-то точно знает, что mssql может возвращать только ColumnName без TableName, то какой механизм базы данных может делать то же, что и база данных Jet?

Кстати, база данных Jet делает это только при использовании синтаксиса строки прямого соединения, в противном случае она будет вести себя так же, как SQL Server при доступе к данным через ODBC.

...