If I have tables like this:
ImportSet1.Users ImportSet2.Users ImportSet3.Users
Then in my sproc I do this:
CREATE PROCEDURE [ImportSet2].[UpdateUsers] ... UPDATE Users set blah = 234 WHERE id = 234
This seems to work, but why? Since when did that prefix [ImportSet2] signify part of the table name? (in this case ImportSet2)
The sproc is built under the ImportSet2 schema, so, by default, it will reference objects in the ImportSet2 schema if no schema name is specified.
I believe it is best-practice, however, to fully-qualify objects with their schema name.