SQL Server Express的广告打得不错,说无非就是CPU的限制、无非就是内存的限制、无非就是很小很小的限制,没想到,一装好,我就发现连不上??
Google一番,说是allow remote connection选项没有打开,结果一检查,已然打开;再Google,众说纷纭……
于是我开始对各种参数进行排列组合……
死也连不上。
问题很简单,因为根据2005的经验,我在主机名后面加上了/SQLEXPRESS,去掉以后,Management Studio就能连接了。这是第一个问题:2005Express是必须加的;2008Express在本机是可加可不加,而在远处是完全不能加……
而后用Excel访问Sql Server,又连不上……残念ing
这次是因为Excel访问Express的时候没有指定默认的端口1433,必须在主机名后加上,1433才能连上。问题是,如果访问Standard版就无需指定端口,访问Express则必须指定,至于/EXPRESS的标识则可有可无。
这算什么?都是MS一家的产品,这个版本是一种用法,另外一个产品是另外一种用法,一点标准都不讲。为什么?
想了半天,唯一的理由无非是多实例和动态端口罢了。问题是正规场合谁没事多实例?Express做个实验犯得着动态端口?再说,这些和服务名能有什么矛盾呢?
看起来,MS根本就没想让人去用Express版。
骂了很多,又想起来以前做jdbc的时候看到SQL Server的头疼事来。文档么不做成javadoc,没法用IDE调用,本身看起来还极其别扭。用来取Schema等元数据的函数么又和JDBC的标准不一样,以至于最后只好针对SQL Server做套方言版出来。按标准做事,真的那么难吗?