我正进入(状态
Statement ‘SELECT INTO’ is not supported in this version of SQL Server
in SQL Server
对于存储过程内的以下查询
DECLARE @sql NVARCHAR(MAX)
,@sqlSelect NVARCHAR(MAX) = ''
,@sqlFrom NVARCHAR(MAX) = ''
,@sqlTempTable NVARCHAR(MAX) = '#itemSearch'
,@sqlInto NVARCHAR(MAX) = ''
,@params NVARCHAR(MAX)
SET @sqlSelect ='SELECT
,IT.ITEMNR
,IT.USERNR
,IT.ShopNR
,IT.ITEMID'
SET @sqlFrom =' FROM dbo.ITEM AS IT'
SET @sqlInto = ' INTO ' + @sqlTempTable + ' ';
IF (@cityId > 0)
BEGIN
SET @sqlFrom = @sqlFrom +
' INNER JOIN dbo.CITY AS CI2
ON CI2.CITYID = @cityId'
SET @sqlSelect = @sqlSelect +
'CI2.LATITUDE AS CITYLATITUDE
,CI2.LONGITUDE AS CITYLONGITUDE'
END
SELECT @params =N'@cityId int '
SET @sql = @sqlSelect +@sqlInto +@sqlFrom
EXEC sp_executesql @sql,@params
我有大约50,000条记录,因此决定使用Temp Table.但惊讶地看到这个错误.
我如何在SQL Azure中实现相同的目标?
>每个表必须具有聚簇索引.不支持没有聚簇索引的表.
>每个连接都可以使用单个数据库.不支持单个事务中的多个数据库.
>’USE DATABASE’不能在Azure中使用.
>不支持全局临时表(或临时对象).
>由于没有跨数据库连接的概念,目前链接服务器不是Azure中的概念.
> SQL Azure是共享环境,因为没有Windows登录的概念.
>总是在需要之后删除TempDB对象,因为它们会对TempDB造成压力.
>在插入插入期间,使用batchsize选项来限制要插入的行数.这将限制事务日志空间的使用.
>避免不必要地使用分组或按操作阻止ORDER,因为它们会导致高端内存使用.