USE (Transact-SQL)

Applies to: SQL Server Azure SQL Managed Instance Analytics Platform System (PDW) Warehouse in Microsoft Fabric

Changes the database context to the specified database or database snapshot.

Transact-SQL syntax conventions

Syntax

USE { database_name }   
[;]  

Arguments

database_name
Is the name of the database or database snapshot to which the user context is switched. Database and database snapshot names must comply with the rules for identifiers.

In Azure SQL Database, the database parameter can only refer to the current database. If a database other than the current database is provided, the USE statement does not switch between databases, and error code 40508 is returned. To change databases, you must directly connect to the database. The USE statement is marked as not applicable to SQL Database at the top of this page, because even though you can have the USE statement in a batch, it doesn't do anything.

Remarks

When a SQL Server login connects to SQL Server, the login is automatically connected to its default database and acquires the security context of a database user. If no database user has been created for the SQL Server login, the login connects as guest. If the database user does not have CONNECT permission on the database, the USE statement will fail. If no default database has been assigned to the login, its default database will be set to master.

USE is executed at both compile and execution time and takes effect immediately. Therefore, statements that appear in a batch after the USE statement are executed in the specified database.

Permissions

Requires CONNECT permission on the target database.

Examples

The following example changes the database context to the AdventureWorks2022 database.

USE AdventureWorks2022;  
GO  

See Also

CREATE LOGIN (Transact-SQL)
CREATE USER (Transact-SQL)
Principals (Database Engine)
CREATE DATABASE (SQL Server Transact-SQL)
DROP DATABASE (Transact-SQL)
EXECUTE (Transact-SQL)