SQL2000的数据库直接附加到2008会不会有问题?
SQL2000的数据库直接附加到2008会不会有问题?求实践过的
[解决办法]
没有问题
[解决办法]
应该没有,但是视图中order by会跟以前不一样
[解决办法]
貌似会有问题.
昨晚,写一个行转列例程,在08下做,结果老是提示" 在 ( 后有语法错误",(前面是 pivot ,后面是 sum
想了很久,不得要领,后将程序复制到原来在数据库test 下开的一个查询窗口,居然又不错了.查了至少有半个小时,突然发现,原来运行的那个窗口,是在 pubs 数据库下的,而 pubs 数据库是从 2000 中备份后还原出来的!
很奇怪会出这样的问题.
[解决办法]
又查了一下,同一程序在同样从2000恢复的 Northwind 亦报错.
[解决办法]
不过,在pubs 和 northwind 下可以使用 row_number() 函数.
[解决办法]
打开查询窗口,把当前数据库设置为你附加来的数据库,运行一下下面的程序,看是否会报错,如果不报错,则没问题:
- SQL code
create table t1(支付ID int,支付名称 nvarchar(10))insert into t1 select 1,'刷卡'insert into t1 select 2,'现金'insert into t1 select 3,'挂账'create table t2(支付信息ID int,支付方式ID int,支付金额 int,支付时间 DateTime)insert into t2 select 1,1,100,'2011-10-09 11:28:16.780'insert into t2 select 2,1,50,'2011-10-09 11:38:19.153'insert into t2 select 3,2,200,'2011-10-09 13:28:16.780'insert into t2 select 4,2,100,'2011-10-15 11:28:16.780'insert into t2 select 5,2,50,'2011-10-15 11:38:19.153'insert into t2 select 6,3,200,'2011-10-15 13:28:16.780'godeclare @s nvarchar(max),@s1 nvarchar(max)--获得列标头[a],[b]select @s=isnull(@s+',','')+'sum(['+ltrim(支付id)+ ']) as ['+ 支付名称 +'金额]',@s1=isnull(@s1+',','')+'['+ltrim(支付id)+']' from t1exec('select dt as 支付时间,'+@s+' from(select convert(varchar(10),支付时间,120)dt,'+@s1+' from t2 pivot(sum(支付金额) for 支付方式ID in('+@s1+'))b)t group by dt')godrop table t1,t2go
[解决办法]
可能有些地方不会兼容很好吧
[解决办法]
不会。
但不建议这样,除了在兼容性上有差异,
在数据库操作上也存在隐患 (可能因数据库再脱机、分离导致不可用)。
如果确定采用该方式,勤做备份,指定有效备份策略。