Acho que isso está acontecendo devido à sua declaração off-line definida.
Tente algo assim:
create database foo
GO
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'foo')
BEGIN
ALTER DATABASE [foo] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DROP DATABASE [foo]
END
CREATE DATABASE foo;
GO