【发布时间】:2013-12-02 03:26:32
【问题描述】:
我最近换了职位,来自 Informix 数据库环境,我可以在其中使用 SQL 语句选择一个或多个列......并将输出定向到临时表。在 Informix 中,对于临时表,我既不需要声明列名,也不需要声明列长度(只有临时表的名称)——我可以简单地写:
从 [columnname1, columnname2, columnname3 ..] 中选择 [database.tablename] where...等进入没有日志的临时表名1;
请注意,在 Informix 中,临时表默认存储列名...以及数据类型 [通过存储在临时表中的数据类型]。所以,如果上面的语句被执行,那么开发者可以只写:
从tablename1中选择columname1、columnname2等
根据我的经验,我发现这种方法非常有用 - 出于多种原因(“切片/切块”数据、使用各种数据源等)......而且非常快速和高效。
但是,现在我使用的是 Microsoft SQL Server,我还没有找到一种方法(还)做同样的事情。在 SQL Server 中,我必须声明每一列,以及它的长度:
创建表 #tablename1 ( column1 numeric(13,0) );
insert into #tablename1(column1) select [column] from [database.tablename] 在哪里……
[然后根据需要使用信息]:
从#tablename1中选择* [然后做一些事情...]
删除表#tablename1
有谁知道我如何在 Microsoft SQL Server 中执行此操作和/或设置此功能?我查看了匿名表(即 Table-Value 构造函数:http://technet.microsoft.com/en-us/library/dd776382.aspx)......但指南指出声明列仍然是必要的。
提前感谢 - jrd
【问题讨论】:
标签: sql sql-server