MS SQL 2014使用T-SQL
我有一个链接服务器到Oracle服务器,该服务器有多个表和视图,其中包含多个具有相同名称的列。列中的值包含相同的数据。
SELECT
SERVER_NAME,
SERVER_NAME,
SERVER_NAME,
IP_ADDRESS,
IP_ADDRESS,
IP_ADDRESS,
IP_ADDRESS,
PHY_LOCATION,
PHY_LOCATION,
PHY_LOCATION,
OS_VERSION,
OS_VERSION
FROM SVR_TABLE
我是否可以执行一个查询,它会从表中为我提供不同的列名?我试图避免进入每个表并手动将不同的列放入表中。
SELECT
SERVER_NAME,
IP_ADDRESS,
PHY_LOCATION,
OS_VERSION
INTO [SQL_SVR_DB].[dbo].[SVR_TABLE]
FROM [ORACLE_SVR]..[SCHEMA_NAME].[SVR_TABLE]
答案 0 :(得分:0)
根据您提供的第二个查询,我认为您正在寻找的是别名。
Wikipedia将SQL别名定义为:
"别名是SQL的一项功能,大多数人都支持,如果不是全部的话, 关系数据库管理系统(RDBMS)。别名提供 数据库管理员以及其他数据库用户 能够减少查询和制作所需的代码量 查询更容易理解。另外,别名可以用作 混淆技术来保护数据库字段的真实名称。"
您可以在此处详细了解:https://en.wikipedia.org/wiki/Alias_%28SQL%29
您正在寻找的查询需要写成:
SELECT SERVER_NAME,
IP_ADDRESS,
PHY_LOCATION,
OS_VERSION
FROM [SQL_SVR_DB].[dbo].[SVR_TABLE] sqlTable
INNER JOIN [ORACLE_SVR].[SCHEMA_NAME].[SVR_TABLE] oraTable
ON sqlTable.ColumnName = oraTable.ColumnName