这是一个漫长而复杂的故事,为什么我需要这样做,但我将获得一个查询字符串,然后我将使用此代码执行
EXECUTE sp_ExecuteSQL
我需要将所有列的别名设置为“value”。传入的查询中可能存在可变数量的列,它们可能是各种数据类型,例如
SELECT
Company, AddressNo, Address1, Town, County, Postcode
FROM Customers
SELECT
OrderNo, OrderType, CustomerNo, DeliveryNo, OrderDate
FROM Orders
这是否可行且相对简单,或者我是否需要在SQL查询中包含别名(如果可以避免并在处理查询时完成此操作,则更容易不执行此操作)
--- ---编辑 例如,第一个查询的输出将是
Company AddressNo Address1 Town County Postcode
--------- --------- ------------ ------ -------- --------
Dave Inc 12345 1 Main Road Harlow Essex HA1 1AA
AA Tyres 12234 5 Main Road Epping Essex EP1 1PP
我希望它是
value value value value value value
--------- --------- ------------ ------ -------- --------
Dave Inc 12345 1 Main Road Harlow Essex HA1 1AA
AA Tyres 12234 5 Main Road Epping Essex EP1 1PP
因此每列都有别名“value”
我可以用
做到这一点SELECT
Company AS 'value', AddressNo AS 'value', Address1 AS 'value', Town AS 'value', County AS 'value', Postcode AS 'value'
FROM Customers
但是如果我们不必手动为我们正在为此过程的这一部分提供的SQL中的每一列别名,那么它会更好(它会在流程链的其他步骤中节省额外的复杂性)。
关于XY问题,这是一个非常大的流程链中的一个小部分,它需要页面来详细解释整个过程 - 本质上,我们从数据库触发器中取出代码并将其放入动态程序;然后我们将有一些前端,用户将访问“编辑”触发器调用的SQL语句,然后这些将动态地将结果输出到其他系统。如果我们手动为SQL进入别名,它就可以工作,但是如果有一种方法我们可以将干净的SQL提供给进程然后在处理SQL时应用别名 - 它会让我们保持DRY,那么它会更简洁。
答案 0 :(得分:0)
我完全不了解你要完成的任务,但我认为答案是否定的:没有内置的方法如何全局预定义或覆盖临时查询的列别名。您需要自己编写代码。