Stored Procedures [dbo].[ucapmsp_copysecurity]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnNo
Parameters
NameData TypeMax Length (Bytes)
@new_roleidint4
@inherited_roleidint4
SQL Script
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE dbo.ucapmsp_copysecurity @new_roleid int, @inherited_roleid int
AS
DECLARE
@secnid int, @seattadd int, @seattupd int, @seprot int, @creation_user nvarchar(64), @creation_date int, @last_update_user nvarchar(64), @last_update_date int, @version_number int
DECLARE security_cursor CURSOR FOR
SELECT secnid, seattadd, seattupd, seprot, creation_user, creation_date, last_update_user, last_update_date, version_number FROM dbo.arg_security WHERE serdid=@inherited_roleid
OPEN security_cursor
FETCH NEXT FROM security_cursor INTO @secnid, @seattadd, @seattupd, @seprot, @creation_user, @creation_date, @last_update_user, @last_update_date, @version_number
-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO dbo.arg_security (serdid, secnid, seattadd, seattupd, seprot, creation_user, creation_date, last_update_user, last_update_date, version_number) values(@new_roleid, @secnid, @seattadd, @seattupd, 0, @creation_user, @creation_date, @last_update_user, @last_update_date, @version_number)
-- This is executed as long as the previous fetch succeeds.
FETCH NEXT FROM security_cursor INTO @secnid, @seattadd, @seattupd, @seprot, @creation_user, @creation_date, @last_update_user, @last_update_date, @version_number
END
CLOSE security_cursor
DEALLOCATE security_cursor

GO
Uses