Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 尝试将查询附加到临时表上_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql 尝试将查询附加到临时表上

Sql 尝试将查询附加到临时表上,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,使用SQL Server 2008-R2 我有一个csv的购买ID,在我的数据库中有一个带有这些购买ID的表,在我们的系统中有相应的用户ID。我需要这些来运行一个更复杂的查询之后,使用。我试图大容量插入或运行导入向导,但我没有权限。我的新想法是使用SELECT-INTO创建一个#temp,然后将查询放入其中,如下所示 SELECT * INTO ##PurchaseIDs FROM ( SELECT PurchaseID, UserID, Added FROM Users

使用SQL Server 2008-R2

我有一个csv的购买ID,在我的数据库中有一个带有这些购买ID的表,在我们的系统中有相应的用户ID。我需要这些来运行一个更复杂的查询之后,使用。我试图大容量插入或运行导入向导,但我没有权限。我的新想法是使用SELECT-INTO创建一个#temp,然后将查询放入其中,如下所示

SELECT *
  INTO ##PurchaseIDs
  FROM
(
SELECT PurchaseID, UserID, Added
      FROM Users
     WHERE PurchaseID IN (
/* These are the csv IDs just copied and pasted in */
'49397828',
'49397883',
etc.
发生的情况是大约有55000个ID,所以我得到了这个错误

查询处理器耗尽了内部资源,无法运行 生成查询计划。这是一个罕见的事件,只有在 非常复杂的查询或引用非常大的 表或分区的数量。请简化查询。如果你 如果您错误地收到此消息,请联系客户 支持服务以获取更多信息

如果我上传大约30000个,那么我的新计划就是看看我是否可以制作一个临时表,然后在表的末尾附加一个新表。我也愿意接受其他关于如何完成我想做的事情的想法。我在下面附上了我的想法

INSERT *
  INTO ##PurchaseIDs
  FROM (
SELECT PurchaseID, UserID, Added
      FROM Users
     WHERE PurchaseID IN (
/* These are the OTHER csv IDS just copied and pasted in */
'57397828',
'57397883',
etc.

您需要创建一个临时表,并将
in
子句中的值插入临时表,然后连接临时表以获得结果

Create table #PurchaseIDs (PurchaseID int)

insert into #PurchaseIDs (PurchaseID)
Select '57397828'
Union All
Select '57397828'
Union All
......
values from csv
现在使用
Exists
检查temp表中是否存在
PurchaseID
,而不是
子句中的

SELECT PurchaseID,
       UserID,
       Added
FROM   Users u
WHERE  EXISTS (SELECT 1
               FROM   #PurchaseIDs p
               WHERE  u.PurchaseID = p.PurchaseID) 

不能将ID加载到带有BCP或SSIS包的表中,然后加入该表以插入数据吗?