Tôi đang sử dụng SQL Server 2008 và đang cố thay đổi tên cơ sở dữ liệu hiện tại thành một trong một biến. Tôi thường làm điều này một cách rõ ràng với statification USE myDatabaseName
. Câu hỏi đặt ra là vì nếu tôi đang chạy tập lệnh và nếu tôi không thay đổi tên cơ sở dữ liệu, nó sẽ tạo tất cả các bảng trong cơ sở dữ liệu [master]
.Máy chủ SQL: Thay đổi cơ sở dữ liệu hiện tại qua biến
Tôi đã thử cách sau nhưng dường như không hoạt động vì nó tiếp tục áp dụng phần còn lại của mã create tables
tới [master]
.
DECLARE @dbName CHAR(50)
DECLARE @SqlQuery varchar(50)
SET @dbName = 'MyNewDatabaseName'
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = @dbName)
BEGIN
SELECT @SqlQuery = 'CREATE DATABASE ' + @dbName + 'COLLATE SQL_Latin1_General_CP1_CI_AS'
EXEC(@SqlQuery)
END
Select @SqlQuery = 'Use ' + @dbName
EXEC(@SqlQuery)
go
bạn đang chạy tập lệnh như thế nào? –
Là một 'truy vấn mới' ở cấp độ máy chủ. – Rick