我在不同的表上有一个循环,返回结果 列数不同。
是否可以在不创建具体表的情况下存储查询的输出?
我已经阅读了一些关于临时表的帖子,所以我尝试了这个简单的例子:
var myMap = new google.maps.Map(document.getElementById("myMap"), {
center : { lat: 37.5, lng: -120 },
zoom : 6
})
google.maps.event.addListener(myMap, "click", function(e) {
var latLng = e.latLng
// do something with latLng
})
上面的table1可以是任何表
我收到以下错误消息:
列名或提供的值与表定义不匹配。
有没有办法避免让硬代码表定义与查询输出完全匹配?
谢谢!
答案 0 :(得分:3)
您可以执行select into
- 将自动创建临时表:
SELECT * INTO #Temp
FROM TableName
问题在于,由于您使用的是动态SQL,因此您的临时表只能在动态SQL范围内使用 - 因此执行此类操作会导致错误:
EXEC('SELECT * INTO #Temp FROM TableName')
SELECT *
FROM #Temp -- The #Temp table does not exists in this scope!
要使用动态SQL执行此类操作,您必须使用全局临时表(必须在使用后删除!):
EXEC('SELECT * INTO ##GlobalTempFROM TableName')
SELECT * INTO #Temp
FROM ##GlobalTemp -- Since this is a global temporary table you can use it in this scope
DROP TABLE ##GlobalTemp