我是否必须明确地创建#temp表?

MAD*_*kie 3 t-sql database-design sql-server-2005

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

我是否首选显式编写CREATE TABLE命令并定义列模式?在SELECT INTO没有定义架构的情况下使用方便的表有缺点吗?

Aar*_*and 5

SELECT INTO的一些缺点:

  1. 您可能会对数据类型/长度/精度/比例感到惊讶.

  2. 您可以从源表中保留IDENTITY属性,但不总是(取决于源查询是否引用多个表).

  3. 如果没有明确的创建,那么select into的存在对于代码的其他维护者来说可能更难以发现,并且它还迫使他们对代码进行反向工程以试图找出临时表的模式.

一些优点:

  1. 你会懒得一次.

  2. 可能会出现稍微好一点的情况,但是如果你以后要添加索引等,那么差异可以忽略不计(并且不能证明我在这一点上说过的其他一切).