Synonym
Perhaps a little known feature of SQL Server 2005 but it might come in handy when you are slowly changing your database to use schema's. Synonyms allow you to define an alias for your objects and this is very helpful when you are migrating to schema's.
By using synonyms you can change your object names while retaining your 'interface' to the application and this allows for a smoother and more phased migration.
A little example with a table but remember that this also works for stored procedures, functions, etc. and it is also possible to create synonyms for remote objects (linked server).
--Create a schema
CREATE
SCHEMA SchemasRock
GO
--Create a table in the default schema
CREATE
TABLE dbo.myTable
(ID int)
GO
--Insert a row
INSERT
INTO dbo.myTable VALUES (1)
--Move the table to the new schema
ALTER
SCHEMA SchemasRock TRANSFER dbo.myTable
--Insert another row (will fail!)
INSERT
INTO dbo.myTable VALUES (2)
/*
Msg 208, Level 16, State 1, Line 1
Invalid object name 'dbo.myTable'.
*/
--Create a synonym to support 'old' table name
CREATE
SYNONYM dbo.myTable FOR SchemasRock.myTable
--Insert another row
INSERT
INTO dbo.myTable VALUES (2)
--Select the rows
SELECT
* FROM dbo.myTable
SELECT * FROM SchemasRock.myTable
--Clean
DROP
SYNONYM [dbo].[myTable]
DROP TABLE [SchemasRock].[myTable]
DROP SCHEMA [SchemasRock]