Q:

SQL Transaction - use values before commit?

So I am creating a stored procedure in SQL2014.  Towards the start it has:
Begin Transaction   
Then  it does an insert into a table, which has an auto-incrementing primary key:
Insert into tNotice.
And then latter on in the stored proc, I need to write a query against the tNotice table to use to build up another insert statement into a different table.  My question is, will the newly inserted values be selected since this is going to be in a transaction, and the commit won't be until the end of the stored proc?  

A:

You can do a quick test to confirm this, I just ran a test out of curiousity, this is on sql server 2012. The current session will have visibility to a record that was previously inserted but not committed, however other sessions will not have visibility to that depending on their transaction isolation level.
Example
create table hs_test(
id int
)

begin transaction

insert into hs_test values (1)

select * from hs_test

--commit

I ran this in one ssms window, with the default isolation level of ReadCommitted. Without committing, the select will still see the value of 1 inserted.
Now if you open up another ssms window, and try to query that table, you won't see any records, because it hasn't been committed yet.

