SQL2000的数据库直接附加到2008会不会有问题?
时间:2011-12-22
来源:互联网
作者: shugeer 发布时间: 2011-12-22
作者: fredrickhu 发布时间: 2011-12-22
作者: koumingjie 发布时间: 2011-12-22
昨晚,写一个行转列例程,在08下做,结果老是提示" 在 ( 后有语法错误",(前面是 pivot ,后面是 sum
想了很久,不得要领,后将程序复制到原来在数据库test 下开的一个查询窗口,居然又不错了.查了至少有半个小时,突然发现,原来运行的那个窗口,是在 pubs 数据库下的,而 pubs 数据库是从 2000 中备份后还原出来的!
很奇怪会出这样的问题.
作者: qianjin036a 发布时间: 2011-12-22
作者: qianjin036a 发布时间: 2011-12-22
作者: qianjin036a 发布时间: 2011-12-22
作者: shugeer 发布时间: 2011-12-22
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' go declare @s nvarchar(max),@s1 nvarchar(max) --获得列标头[a],[b] select @s=isnull(@s+',','')+'sum(['+ltrim(支付id)+ ']) as ['+ 支付名称 +'金额]',@s1=isnull(@s1+',','')+'['+ltrim(支付id)+']' from t1 exec('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') go drop table t1,t2 go
你可以在2008里新建一个数据运行它,肯定是没问题的.
作者: qianjin036a 发布时间: 2011-12-22
作者: pengxuan 发布时间: 2011-12-22
但不建议这样,除了在兼容性上有差异,
在数据库操作上也存在隐患 (可能因数据库再脱机、分离导致不可用)。
如果确定采用该方式,勤做备份,指定有效备份策略。
作者: claro 发布时间: 2011-12-22
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28