发现sp_helpdb执行时失败
闲着无事运行N年前写的一段测试代码,竟然无法执行sp_helpdb。已经是sa了。查看日志,说无法将null值(db_owner)插入到temp的一个表中,说明某个db_owner为空,但是sp_helpdb自己创建的临时表中声明的db_owner不允许为空。
可能是我的数据库中某个数据库是由外部数据库文件覆盖过来造成的,简单修改一下master.dbo.sp_helpdb,将#spdbdesc的owner改为允许为null。发现好多数据库的owner不正常。因为自己不能随便修改 master.dbo.sysdatabases的sid,于是在这些异常的数据库中执行sp_changedbowner 'sa',问题解决了~~
希望能给可能用到的朋友个提示,就是从别的服务器拷贝过来的数据库,会出现这个问题,需要重置dbowner。