• To demonstrate this behavior:

    CREATE SCHEMA testA

    GO

    CREATE SCHEMA testB

    GO

    CREATE TABLE dbo.Cities (city varchar(50))

    GO

    CREATE TABLE testA.Cities (city varchar(50))

    GO

    CREATE TABLE testB.Cities (city varchar(50))

    GO

    INSERT INTO dbo.Cities VALUES ('Chicago')

    INSERT INTO testA.Cities VALUES ('Cairo')

    INSERT INTO testB.Cities VALUES ('Atlanta')

    GO

    CREATE PROCEDURE testB.GetCities

    AS

    SELECT * FROM Cities

    GO

    EXEC testB.GetCities

    GO

    Output is:

    Atlanta

    ...CREATE PROCEDURE testB.GetCities

    WITH EXECUTE AS CALLER

    ...CREATE PROCEDURE testB.GetCities

    WITH EXECUTE AS OWNER

    These all yielded the same result.