2013-10-08 2 views
1

У меня есть хранимая процедура, где я изменяю свойства БД. В сценарии используется ALTER DATABASE CURRENT. Но я обнаружил, что это отлично работает в версии MSSQL 2012 года, но дает исключение в старой версии. Как решить эту проблему ?ALTER DATABASE CURRENT - исключение

образец содержание сценария:

ALTER DATABASE CURRENT SET ANSI_PADDING OFF 
    GO 

Ошибка:

Incorrect syntax near the keyword CURRENT 
+1

Проверить http://stackoverflow.com/questions/14275935/alter-current-database-without-use-its-name, которая кажется подобной, не будучи точным дубликатом – Yuck

ответ

1

Вы можете использовать анонимный блок с sp_executesql -

declare @db_name varchar(64) 
declare @stat_sql nvarchar(256) 
begin 
    select @db_name = (select DB_NAME()) 
    set @stat_sql = N'ALTER DATABASE ' + @db_name + ' SET ANSI_PADDING OFF' 
    EXECUTE sp_executesql @stat_sql 
end 
Смежные вопросы