2
我成功地将表变量的值插入到新的(尚不存在的表)Temp表中。在插入少量行(例如10,000)时没有问题,但是当插入到表变量中时,很多行(例如30,000)会引发错误“服务器耗尽内存和外部资源” 问题: 我将我的(60,000)表变量行分成小批量(例如10,000),认为我可以将新数据插入到已经存在的Temp Table中,但是我收到以下错误消息:从表变量插入已经存在的Temp表
。已在数据库中名为 '##不是Temptable' 对象
我的代码是:
USE MyDataBase;
Go
Declare @@TableVariable TABLE
(
[ID] bigint PRIMARY KEY,
[BLD_ID] int NOT NULL
-- 25 more columns
)
Insert Into @@TableVariable VALUES
(1,25),
(2,30)
-- 61,000 more rows
Select * Into #TempTable From @@TableVariable;
Select Count(*) From #TempTable;
下面是错误消息我得到
我的猜测是,这是对脚本的限制只使用@TableVariable。 –
记住@@表格存储在内存中,所以如果你有一个消息“OutOfmemory”,也许你没有足够的内存。如果可以的话,我建议创建一个pyhiscal tempTable(没有@@表),并检查是否收到相同的消息。 – Beto
没有创建任何权限...通过任何机会,您是否知道我是否可以将新数据添加到来自表变量源的现有TempTable中? – enigma6205