33. What is a table called that has ## before its name, what is its scope?
Table with ## (double pound signs) is called Global Temp table. Scope is outside the session but only till the original session lasts.

34. What is the scope of a temporary table?
Scope is limited to its session only.

declare @mycursor cursor
declare @FirstName varchar(12)
select CURSOR_STATUS('variable','@mycursor') --// -2 (Not applicable)
set @mycursor = cursor for
select FirstName from Person.Contact
select CURSOR_STATUS('variable','@mycursor') --// -1 (The cursor is closed)
open @mycursor
select CURSOR_STATUS('variable','@mycursor') --// 1 (The result set of the cursor has at least one row)
fetch next from @mycursor into @FirstName
select CURSOR_STATUS('variable','@mycursor') --// 1 (The result set of the cursor has at least one row)
close @mycursor
select CURSOR_STATUS('variable','@mycursor') --// -1 (The cursor is closed)
deallocate @mycursor
select CURSOR_STATUS('variable','@mycursor') --// -2 (Not applicable)
select CURSOR_STATUS('variable','@nocursor') --// -3 (A cursor with the specified name does not exist)

41. How many non-clustered indexes can you have in a table?
Upto 999 non-clustered indexes can be created in a table in SQL Server 2012/2014.

47. How would you get @@ERROR & @@ROWCOUNT at the same time?
Both the statements should be applied immediately after the SQL query you want to get the details of. If either of them is used later you will miss the information. So to get @@ERROR and @@ROWCOUNT details you need to execute them together in one statement like:SELECT @RC = @@ROWCOUNT, @ER = @@ERROR