是否可以避免在SQL Server CTE中指定列列表?

是否可以避免在SQL Server CTE中指定列列表?,sql,sql-server,common-table-expression,Sql,Sql Server,Common Table Expression,是否可以避免在SQL Server CTE中指定列列表 我想从一个有很多列的表中创建一个CTE,这样结构就完全相同了。可能有一种方法可以在不重新列出每个列名的情况下实现这一点 我试过(没有成功): msdn文档中的这句话鼓励了我的探索: 只有在查询定义中提供了所有结果列的不同名称时,列名列表才是可选的 https://msdn.microsoft.com/en-us/library/ms175972.aspx 是的,假设您的意思是不必用cte(Col1,Col2)将部分中的每一列命名为 您可以

是否可以避免在SQL Server CTE中指定列列表

我想从一个有很多列的表中创建一个CTE,这样结构就完全相同了。可能有一种方法可以在不重新列出每个列名的情况下实现这一点

我试过(没有成功):

msdn文档中的这句话鼓励了我的探索: 只有在查询定义中提供了所有结果列的不同名称时,列名列表才是可选的

https://msdn.microsoft.com/en-us/library/ms175972.aspx

是的,假设您的意思是不必用cte(Col1,Col2)将
部分中的每一列命名为

您可以通过一个非常简单的测试查询自己轻松地尝试以下内容:

with cte as
(
    select *
    from sys.tables
)
select *
from cte

当你尝试时发生了什么?嗨,戴夫-谢谢你的简洁、准确和有用的回答。@JoelBenjamin谢谢:)为了让其他有相同问题的用户受益,如果这是你想要的,请将其标记为正确答案。如果我看到任何选项,我会将其标记为正确答案。也许stackoverflow没有给像我这样的新手这样的选择。它说,我的得票数只有在我累积15分时才算起。@JoelBenjamin得票和接受回答是两回事。您应该能够接受这一点作为答案。@XavierDury我不知道您为什么会期望它,因为这是一个与SQL Server明确相关的问题和答案
with cte as
(
    select *
    from sys.tables
)
select *
from cte