我在 SQL Server 数据库中有许多包含大量列 (> 100) 的表。在某些情况下,当选择(使用视图)时,我需要用固定结果值替换其中一列,而不是行中的数据。有没有办法使用类似的东西
select table.*, 'value' as Column1 from table
Run Code Online (Sandbox Code Playgroud)
如果 Column1 是表中的列名?
当然,我可以列出 select 语句中预期结果的所有列,并用一个值替换该列。然而,这非常不方便,并且如果在表中添加或删除列,我必须维护 3 或 4 个这些视图。
不,在这种情况下您必须指定列。
如果经常更换表格,则会出现更严重的问题。这可能是存在重大架构缺陷的信号。
无论如何,列出所有列而不是列*是一个很好的做法,因为如果列数发生变化,可能会导致级联错误。