我已经在线查看并且无法轻松地将变量放入打开的查询中,因此我修改了查询,并且它说#TempOT临时表是“无效的对象名称” TempOT”。”我做错了什么导致临时表不能填充?从打开的查询中将数据插入临时表
BEGIN
IF OBJECT_ID('tempdb..#TempOT') IS NOT NULL
BEGIN
DROP TABLE #TempOT
END;
DECLARE @TSQL As varchar(1024)
DECLARE @AS400Query As varchar(1024)
SET @AS400Query = 'SELECT * from blah.blahlibrary.AS400Table where DATETS BETWEEN '+ @BegofMonthForAS400 + ' AND ' + @DateForAS400
SET @TSQL = 'SELECT * FROM OPENQUERY(ISERIES,' + '''' + @AS400Query +'''' + ')'
INSERT INTO #TempOT
EXEC(@TSQL)
END
我也尝试这样做,这是行不通的
BEGIN
IF OBJECT_ID('tempdb..#TempOT') IS NOT NULL
BEGIN
DROP TABLE #TempOT
END;
DECLARE @TSQL As varchar(1024)
DECLARE @AS400Query As varchar(1024)
SET @AS400Query = 'SELECT * from valdosta.PRDATA.PRTIMELM where DATETS BETWEEN '+ @BegofMonthForAS400 + ' AND ' + @DateForAS400
SET @TSQL = ' INSERT INTO #TempOT SELECT * FROM OPENQUERY(ISERIES,' + '''' + @AS400Query +'''' + ')'
EXEC(@TSQL)
END
如果存在具有该对象ID的现有临时表,那么当我插入它时应该自动创建具有镜像源表的列名和数据类型的表。但这并未发生。如果我评论drop table语句,我会得到同样的错误。我看到的每个地方都在说它应该是这样的。我有点困惑,为什么它的失败诚实 – Gio