tsql - 我是否必须显式创建 #temp 表?

标签 tsql sql-server-2005 database-design

在我的存储过程中,我使用 #LocalTable 将数据插入到本地临时表(即 SELECT INTO )中。句法。我目前不写 CREATE TABLE此表的命令。

我是否更喜欢明确地写一个 CREATE TABLE命令并定义列模式?使用方便是否有缺点SELECT INTO没有定义架构的表?

最佳答案

SELECT INTO 的一些缺点:

  • 您可能会在数据类型/长度/精度/比例方面得到惊喜。
  • 您可以保留源表中的 IDENTITY 属性,但并非总是如此(取决于源查询是否引用了多个表)。
  • 如果没有显式创建,则其他代码维护者可能更难以发现 select into 的存在,并且它还迫使他们对代码进行逆向工程以试图找出临时表的模式。

  • 一些优点:
  • 你会懒惰一次。
  • 在某些情况下,它的性能可能稍好一些,但是如果您稍后要添加索引等,则差异将可以忽略不计(并且不会证明我在这一点上所说的其他一切都是合理的)。
  • 关于tsql - 我是否必须显式创建 #temp 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17846699/

    相关文章:

    sql - 在 SQL Server 2008 中使用 PIVOT

    TSQL 选择一行或多行加入

    sql-server - 如何在sql server 2008上运行并行查询?

    sql-server - SQL Server 2005 Xquery 命名空间

    ms-access - 自动编号主键的更好替代方案

    sql-server - 设置 IDENTITY_INSERT ON 不起作用

    sql - 如何根据时间戳确定一周的第一天和最后一天?

    sql - T-SQL 中带有 PIVOT 命令的 GROUP BY 语句

    ios - ios core data中如何设计具有聚合关系的两张表?

    database - 在数据库中存储营业时间