一 上传数据库问题
今天在一台新电脑上用SQLAzureMW上传数据库到SQL AZURE,结果在上传时老是出现"索引错误",想了半天也没明白,到网站上一查
才发现有个需求
Requirements
SQLAzureMW and tools requires SQL Server 2008 R2 SP1 bits to run.
Microsoft® SQL Server® 2008 R2 SP1 - Express Edition
选择
二 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了