繁体   English   中英

SQL Server 2008R2 - perm表中的数据,但不在临时表中

[英]SQL Server 2008R2 - data in perm table but not in temp table

我不确定为什么会发生这种情况......实际的表还有数据,当试图将数据从实际表中提取到临时表时,没有数据......

IF object_id('DI_Temp.di.Holly') IS NOT NULL 
   DROP TABLE DI_Temp.di.Holly

CREATE TABLE DI_Temp.di.Holly
(
Toys varchar(20)
,Meals varchar(100)
,Breaks varchar(20)
)

Insert DI_Temp.DI.Holly 
   Select 
      Toys, Meals, Breaks
   from toysarefun.dbo.crazytoys (nolock)
   where status = 'active'

--Select * from di_temp.di.holly

IF OBJECT_ID('tempdb.dbo.#Toys') IS NOT NULL 
   DROP TABLE tempdb.dbo.#Toys

SELECT * 
INTO #Toys
FROM DI_Temp.di.Holly (NOLOCK) 
WHERE Toys like 'H*'

Select *
from tempdb.dbo.#Toys

谢谢 :)

首先,你不是在比较苹果和苹果。 您的测试选择应包括SAME过滤器作为INSERT..SELECT查询

其次,最好尽量减少在SELECT.. INTO花费的时间SELECT.. INTO 最好先创建临时表。

第三,不要使用tempdb.dbo.#Toys #隐含在tempdb中。 无论如何你会得到这个警告

数据库名称'tempdb'被忽略,引用tempdb中的对象。

改变的部分:

-- uncomment first to check if there are any matches
--Select * from di_temp.di.holly WHERE Toys like 'H*'

IF OBJECT_ID('tempdb.dbo.#Toys') IS NOT NULL 
DROP TABLE #Toys;

SELECT *
INTO #Toys
FROM DI_Temp.di.Holly (NOLOCK) 
WHERE 1=0;

INSERT INTO #Toys
SELECT * 
FROM DI_Temp.di.Holly (NOLOCK) 
WHERE Toys like 'H*';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM