sql azure試用感受3

startexcel發表於2012-03-15

一 上傳資料庫問題

今天在一臺新電腦上用SQLAzureMW上傳資料庫到SQL AZURE,結果在上傳時老是出現"索引錯誤",想了半天也沒明白,到網站上一查

才發現有個需求

Requirements
SQLAzureMW and tools requires SQL Server 2008 R2 SP1 bits to run.


需要2008 R2 SP1,在微軟網站上找到了

Microsoft® SQL Server® 2008 R2 SP1 - Express Edition

http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=ff38db3d-b0fb-4dad-bcd4-e9a4c509b017&displaylang=zh-cn


選擇

SQLEXPRADV_x64_CHS.exe(32位系統請選擇SQLEXPRADV_x86_CHS.exe)

下載安裝,安裝時要注意如果不需要資料庫功能,不要選擇資料庫引擎.


二 SQL語法問題

資料庫上傳成功,測試程式發現有些功能出錯,仔細除錯發現是因為用了

SELECT **** INTO #TEMP這樣的語句造成的.

原來SQL AZURE不支援SELECT INTO語句

需要先用CREATE 建立好臨時表,然後再用INSERT INTO *** SELECT 這樣把資料新增進去


三 排序規則問題

這個是很容易忽略的,因為一般我們使用的是中文版本SQL,所以再用漢字比對時不會出現問題

比如

SELECT * FROM A WHERE A.NAME='系統狀態'

A.NAME是nvarchar,這在中文資料庫是能查到資料庫,但上傳到SQL AZURE就查不到了

原因SQL Azure 資料庫使用的預設資料庫排序規則是 SQL_LATIN1_GENERAL_CP1_CI_AS。其中,LATIN1_GENERAL 是英語(美國),CP1 是內碼表 1252,CI 是不區分大小寫,AS 是區分重音。


解決辦法:

CREATE DATABASE DB COLLATE Chinese_PRC_CI_AS

然後用
SELECT [NAME],[COLLATION_NAME] FROM SYS.DATABASES

檢查下排序規則變成 Chinese_PRC_CI_AS了


相關文章