PDA

View Full Version : giúp mình sửa sp này với



bigcat
23-01-2008, 13:24
mình viết 1 sp với yêu cầu là liệt kê tất cả các user của 1 login trong hệ thống (trên tất cả các database ) . Yêu cầu là phải sử dụng con trỏ như sau

CREATE PROCEDURE TimTatcaUser_of_Login @Loginame nvarchar (128)
AS
BEGIN
if(exists (select name from master.dbo.syslogins
where name=@Loginame))
Begin
DECLARE @Dtabase nvarchar(128)
DECLARE TimUser_Cursor CURSOR FOR
SELECT name FROM master.dbo.sysdatabases

OPEN TimUser_Cursor
FETCH NEXT FROM TimUser_Cursor INTO @Dtabase
WHILE (@@FETCH_STATUS = 0)
BEGIN
--kiem tra xem co ton tai user trong database hay khong moi in ra
if(exists ( select U.name from [@Dtabase].dbo.sysusers U, master.dbo.syslogins L where L.name=@Loginame and U.sid = L.sid))
begin
select U.name from [@Dtabase].dbo.sysusers U , master.dbo.syslogins L
where U.sid=L.sid and L.name = @Loginame
end
else
RAISERROR ('Database khong co user cua Login',16,2)
FETCH NEXT FROM TimUser_Cursor INTO @Dtabase
END
CLOSE TimUser_Cursor
DEALLOCATE TimUser_Cursor
end
else
RAISERROR ('Login khong ton tai trong he thong',16,2)
END