1、如何快速将2000的数据库升级到2005?
安装了sql server 2005以后,不管是32位还是64位,都可以直接附加sql server 2000下创建的数据库文件。数据库升级到2005的最快速的方法是:在SQL Server 2000中分离数据库,将数据库文件拷到装有SQL Server 2005的机器上,然后在Management Studio中附加数据库。附加数据库后删除数据库中的原来用户,重新增加即可。
有教程说,可以用下面的语句把数据库中孤立用户和系统用户做关联:
sp_change_users_login 'update_one', 'test', 'test'
可惜没有测试成功。
2、SQL2005删除用户的时候,产生“数据库主体在该数据库中拥有架构,无法删除”错误的解决办法
在2005上附加了一个2000下的MDF数据库,提示附加成功后,里面有一个原来数据库的用户,想无法删除这个用户,却遭到系统的拒绝,提示如下:
数据库主体在该数据库中拥有 架构,无法删除。 (Microsoft SQL Server,错误: 15138)
仔细研究了一下,发现很简单,只要在数据库的安全性-构架中先删除对应的构架(用户名字相同),然后就可以删除用户了。
3、升级到2005后,原来的sql语句执行出错的解决办法。
升级后的sql执行出错提示很多,也很奇怪,比如:
Microsoft OLE DB Provider for ODBC Drivers错误 '80040e21'
ODBC 驱动程序不支持所需的属性。
调试到最后发现,原来只要将sql的连接语句改为“provider=sqloledb.1”,即OLE/DB方式就可以了。因为之前我一直使用ODBC方式连接,也正常使用了5、6年,想不到升级到sql2005后就出问题了。
小知识:
我看见有的连接SQLserver的语句中是conn.Open "Driver=SQLserver;.....
有的是conn.Open "PROVIDER=SQLOLEDB;....
这两种方式分别是什么,有什么有缺点吗?望大家赐教!
第一种就是常说的ODBC方式连接数据库。第二种是微软自己开发的OLE DB。
OLE DB可以连接各种类型的数据源,比ODBC灵活。(连ACCESS等关系数据库当然体现不出来了,它可以连活动目录、exchange等,ODBC就不可以。)
4、如果有好多个数据库需要附加,有没有简单的办法批量附加数据库?
如果有多个库要附加,可以使用存储过程.sp_attach_db ,具体说明如下.
下面的示例将 pubs 中的两个文件附加到当前服务器。
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'