此版本的SQL Server – SQL Azure不支持语句’SELECT INTO’
|
我正进入(状态
对于存储过程内的以下查询 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/采取的一些点 >每个表必须具有聚簇索引.不支持没有聚簇索引的表. 解决方法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 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
