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
相关文档:
查询 card 的记录为两次以上的 card,记录数:
select count(card), card from TableName group by card having count(card) > 1
级联更新,级联删除:
ColumnName type not null constraint FK_Name foreign key(ColumnName) references PrimaryTable(ColumnName) on update/delete cascade
自动计算列:
create tabl ......
if(query.getIsScrapAlert()!=null&&query.getIsScrapAlert()==1){
//criteria.add(Expression.sql(" add_months(this_.D_RECEIVE_DATE,this_.N_DEPRECIABLE_LIFE*12)<add_months(sysdate,-3) "));
criteria.add(Expression.sql(" ((add_months(this_. ......
PL/SQL存储过程编程 收藏
/**author huangchaobiao
*Email:huangchaobiao111@163.com
*/
PL/SQL存储过程编程(上)
1. Oracle应用编辑方法概览
答:1) Pro*C/C++/... : C语言和数据库打交道的方法,比OCI更常用;
2) ODBC
3) OCI: C语言和数据库打交道的方法,和ProC很相似,更底层,很少用;
4) SQLJ ......
SQL Server在安装到服务器上后,由于出于服务器安全的需要,所以需要屏蔽掉所有不使用的端口,只开放必须使用的端口。下面就来介绍下SQL Server 2008中使用的端口有哪些:
首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果我们要远程连接数据库引擎,那么就需要打开该端口。这个端口是可以修改的,在&ldqu ......