sql导出数据库时报 "登陆 xxx 失败",无法完成
修改数据库对象所有人
今天帮朋友传数据库报错,提示 "
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]登陆 xxx 失败",正好前段时间碰到同样问题,尝试删除用户 xxx , 又报错,提示" 用户拥有对象,所以无法删除". 查看数据库,发现该用户拥有很多存储过程,一个一个改太麻烦,从网上找到如下方法,恰好解决此问题:
CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch
@OldOwner as NVARCHAR(128),
@NewOwner as NVARCHAR(128)
AS
DECLARE @Name as NVARCHAR(128)
DECLARE @Owner as NVARCHAR(128)
DECLARE @OwnerName as NVARCHAR(128)
DECLARE curObject CURSOR FOR
select 'Name' = name,
'Owner' = user_name(uid)
from sysobjects
where user_name(uid)=@OldOwner
order by name
OPEN curObject
FETCH NEXT from curObject INTO @Name, @Owner
WHILE(@@FETCH_STATUS=0)
BEGIN
if @Owner=@OldOwner
begin
set @OwnerName = @OldOwner + '.' + rtrim(@Name)
exec sp_changeobjectowner @OwnerName, @NewOwner
end
-- select @name,@NewOwner,@OldOwner
FETCH NEXT from curObject INTO @Name, @Owner
END
close curObject
deallocate curObject
GO
然后执行存储过程即可
exec User_ChangeObjectOwnerBatch
相关文档:
安装的组件和版本的信息
Microsoft SQL Server Management Studio 9.00.1399.00
Microsoft Analysis Services 客户端工具 2005.090.1399.00
Microsoft 数据访问组件 (MDAC) 6.1.7600.16385 (win7_rtm.090713 ......
最先希望使用datatable.columns种所含有的属性直接获取相关信息,可测试后发现,除了字段名和字段类型,其他数据一概找不到。
GOOGLE网上很多种方法,其中最直接的是直接查询SQLSERVER的information_schema.colums视图,从中直接获取信息,不过后来又发现,虽然数据时全了,可是需要通过很复杂的方法(sys.all_columns sys ......
MS SQL SERVER数据库备份BAK还原数据库
由于数据误操作,想恢复一下操作前的数据。于是新建了一个空数据库。使用原来的备份文件 bak。来恢复成一个新的数据库。这样就可以手动恢复数据了。
但是在恢复新建数据库的时候总是不成功,提示错误入下:
The backup set holds a backup of a database other than the existing ......
Knowledge Xpert® for PL/SQL 是一个功能强大的基于Windows的技术资源库,它覆盖PL/SQL 开发的整个生命周期,上千种专题提供编写高质量代码所需要的背景信息、最好的经验和程序范例。
提供上千种专题,覆盖PL/SQL 编程的整个生命周期,从基本的专题到高级的PL/SQL 编码技术。
由包括Mike Ault、Steven Feuerstein、 ......