В SQL Server 2005 как я могу использовать database_b, что-то сделать, а затем использовать старый db database_a в TSQL? - PullRequest
1 голос
/ 25 мая 2010

В SQL Server 2005 как я могу использовать database_b, что-то сделать, а затем использовать старый db database_a в TSQL? Ниже приведен мой код, но есть некоторые проблемы с ним. Кто может помочь мне определить проблему? Большое спасибо.

DECLARE @old_database_name VARCHAR(200)
SET @old_database_name = db_name()

use mydatabase

create table t1(id int identity(1,1))

use @old_database_name

Ответы [ 3 ]

2 голосов
/ 25 мая 2010

Для этого вам нужно использовать динамический sql.

, например

-- Do stuff in current DB here

EXECUTE ('USE mydatabase; create table t1(id int identity(1,1));')

-- Do more stuff in current DB here. This context will not have changed since before the EXECUTE statement
0 голосов
/ 26 мая 2010

Это похоже на пример "EXECUTE" AdaTheDev, но использует sp_executesql:

-- Do stuff in current DB here

EXECUTE mydatabase..sp_executesql N'create table t1(id int identity(1,1));'

-- Do more stuff in current DB here. This context will not have changed since before the EXECUTE statement
0 голосов
/ 25 мая 2010

Почему вы даже используете для этого операторы USE?

create table mydatabase.dbo.t1(id int identity(1,1)) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...