2013-10-08 4 views
1

J'ai une procédure stockée dans laquelle je modifie les propriétés du DB. Il utilise ALTER DATABASE CURRENT dans le script. Mais j'ai trouvé que cela fonctionne bien dans la version MSSQL 2012, mais donne une exception dans l'ancienne version. Comment résoudre ce problème ?ALTER DATABASE CURRENT - exception

échantillon contenu de script:

ALTER DATABASE CURRENT SET ANSI_PADDING OFF 
    GO 

Erreur:

Incorrect syntax near the keyword CURRENT 
+1

Vérifier http://stackoverflow.com/questions/14275935/alter-current-database-without-using-son-nom qui semble similaire sans être un duplicata exact – Yuck

Répondre

1

Vous pouvez utiliser le bloc anonyme avec 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 
Questions connexes