以下のスクリプトを実行しました
DECLARE @name VARCHAR(50)
DECLARE @Statment VARCHAR(500)
DECLARE DB_cursor CURSOR
FOR
SELECT name
FROM sys.databases
WHERE name NOT IN ( 'master', 'tempdb', 'model', 'msdb',
'ReportServer$SQLEXPRESS',
'ReportServer$SQLEXPRESSTempDB' )
OPEN DB_cursor
FETCH NEXT FROM DB_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @name
ALTER DATABASE [@name] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
SET @Statment = 'Backup database ' + @name + ' To disk =N' + ''''
+ 'C:\Mas\' + @name + '.bak' + ''''
PRINT @Statment
EXEC(@Statment)
-- ALTER DATABASE [@name] SET MULTI_USER WITH ROLLBACK IMMEDIATE
-- EXEC sp_dboption @name, N'offline', N'false'
FETCH NEXT FROM DB_cursor INTO @name
END
CLOSE DB_cursor
DEALLOCATE DB_cursor
以下のエラーが発生しました
メッセージ 5011、レベル 14、状態 5、行 11
ユーザーにデータベース '@name' を変更する権限がないか、データベースが存在しないか、データベースがアクセス チェックを許可する状態ではありません。メッセージ 5069、レベル 16、状態 1、行 11
ALTER DATABASE ステートメントが失敗しました。
この問題を解決する方法で行き詰まっている場所を教えてください。
注:- このスクリプトを sa ログインで実行しました。