sql-server - 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 相同。
解决方案
推荐阅读
- algorithm - 从 1 到 k 中选择数字使其总和等于 n 的方法有多少?
- r - 如何创建行的子集,直到条件为 False 并继续这样做?
- reactjs - 如何在 React 中为每个关闭的手风琴选项卡添加滚动到顶部动画?
- google-data-studio - 表中的 Analytics 值与时间序列中的值不同
- php - 将多个csv数据中的数据导入一张主表
- javascript - .env Nuxt JS 无法正确解析生成选项中的路由
- ios - iOS 从用户文档 Firebase Firestore 存储/更新和检索位置数据
- javascript - Crossfilter1.4.6 过滤器喜欢用数组维度时不起作用,过滤器功能后仍然可以得到数组为空的行
- python - 如何创建具有此类类型的类的实例?
- go - 日志repo的抽象实现