This what you want to do? The stored proc uses EXECUTE AS to set the user context dynamically.create proc dbo.xx (@user sysname =null)with execute as 'dbo'asif @user is not null begin execute as user = @user endselect [Current user] = user_name()goexec dbo.xxgoexec dbo.xx 'dummy'godrop proc dbo.xxResults:Current user------------------------ dbo(1 row(s) affected)Current user------------------------ Dummy(1 row(s) affected)
CODO ERGO SUM