首页 > 解决方案 > sql server join 查询不包含同名列的表名

问题描述

我正在将 jet 数据库迁移到 ms-sql,该应用程序已建立良好,包含数万行代码,可能超过 10 万行代码。

当使用 adodb 记录集(在 vb.net 中)查询 jet 数据库并连接具有相同名称的列的表(选择 a.foo、b.foo)时,您会为那些具有相同名称的字段返回 TableName.Column .
但是在查询 sql server (MS SQL) 时,您只能获得 ColumnNames,因此如果您有两个表 a 和 b,并且每个表都有一个名为 foo 的列,您将获得两个名为“foo”的列,其中与jet 数据库你得到 a.foo 和 b.foo

完全知道您可以在您的选择语句中使用“as”来为列名起别名(选择 a.foo 作为 a_foo,b.foo 作为 b_foo),但 我不想这样做- 我没有是时候通过应用程序中的数千个select 语句了。

所以我问是否有人知道 SQL 能够像喷气式数据库一样运行并返回TableName.ColumnName具有相似名称的字段的方式,

或者如果有人确定 mssql 只能返回没有 TableName 的 ColumnName,那么哪个数据库引擎可以完成 Jet 数据库的工作?

顺便说一句,Jet 数据库只有在使用直接连接字符串语法时才会这样做,否则如果通过 ODBC 访问数据,它的行为方式与 SQL Server 相同。

标签: sql-serverjoincolumnnametablename

解决方案


推荐阅读