加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

此版本的SQL Server – SQL Azure不支持语句’SELECT INTO’

发布时间:2020-12-12 06:26:54 所属栏目:MsSql教程 来源:网络整理
导读:我正进入(状态 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) =
我正进入(状态

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中实现相同的目标?

编辑:阅读此博客http://blogs.msdn.com/b/sqlazure/archive/2010/05/04/10007212.aspx建议我们在存储过程中创建一个表来存储数据而不是Temp表.在并发下安全吗?它会达到性能吗?

添加从http://blog.sqlauthority.com/2011/05/28/sql-server-a-quick-notes-on-sql-azure/采取的一些点

>每个表必须具有聚簇索引.不支持没有聚簇索引的表.
>每个连接都可以使用单个数据库.不支持单个事务中的多个数据库.
>’USE DATABASE’不能在Azure中使用.
>不支持全局临时表(或临时对象).
>由于没有跨数据库连接的概念,目前链接服务器不是Azure中的概念.
> SQL Azure是共享环境,因为没有Windows登录的概念.
>总是在需要之后删除TempDB对象,因为它们会对TempDB造成压力.
>在插入插入期间,使用batchsize选项来限制要插入的行数.这将限制事务日志空间的使用.
>避免不必要地使用分组或按操作阻止ORDER,因为它们会导致高端内存使用.

解决方法

SELECT INTO是您在SQL Azure中无法执行的许多事情之一.

您需要做的是首先创建临时表,然后执行插入.就像是:

CREATE TABLE #itemSearch (ITEMNR INT,USERNR INT,IT.ShopNR INT,IT.ITEMID INT)
INSERT INTO #itemSearch
SELECT IT.ITEMNR,IT.ITEMID                  
FROM dbo.ITEM AS IT

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读