【发布时间】:2017-02-13 09:09:34
【问题描述】:
我在这里要做的是创建一个动态查询,其中 DBA 只需在变量级别更改列名,原因是我们有多个被可怕地创建的 DB,即使它们具有相同的数据,列名称从一个更改为另一个(它们之间没有规范化)。
我正在处理一个大约有 400 行的查询,我试图避免将逻辑传递给另一个 DBA,在那里他们必须通过脚本并替换所有列名......但只是分配从数据库匹配到逻辑的列名。不确定这是否可能。
这是一个例子:
Declare @ColumnA
Declare @ColumnB
set @ColumnA = 'UserID'
set @ColumnB = 'Salary'
select @ColumnA,@ColumnB from Table
我怎样才能实现这种功能?
【问题讨论】:
-
如果没有动态 SQL,这是不可能的,我不建议将 400 行查询转换为动态 SQL。 Ctrl+H 会容易很多。
-
我想知道您如何期望 'UserID' 存储在
int变量中。 :D -
哈哈你是对的,我只是想说明一点,但我只需要查询来查看列名,不需要数据..
-
@Andrew:没有理由 UserId 不能是 int。
-
@ Mitch,Andrew 有一点,我删除了数据类型,因为我需要保留列名,而不是数据类型。如果这在事实是可能的
标签: sql sql-server tsql dynamic-sql