roker002
Commander
- Registriert
- Dez. 2007
- Beiträge
- 2.075
Ich versuche durch einen Script (keine Prozedur) die Datenbanknamen zu ändern.
Irgendwie klappt es doch nicht. Wo habe ich falsch gemacht?
Kennst sich da jemand aus? Eigentlich sollte alles funktionieren.
Irgendwie klappt es doch nicht. Wo habe ich falsch gemacht?
Code:
USE [master]
--neue Name der alter Datenbank
DECLARE @oldfile NVARCHAR(MAX);
--gesamtlänge des String mit der Angabe der Datenbank.
DECLARE @len INT;
--alte Name der alter Datenbank, ungekürzt ungeändert.
DECLARE @fullname NVARCHAR(MAX);
SET @fullname = (SELECT physical_name FROM sys.master_files WHERE name = 'test');
SET @len = LEN(@fullname);
SET @oldfile = SUBSTRING(@fullname,1, @len - 4) + CONVERT(NVARCHAR(10), GETDATE(), 112) + '.mdf';
--SELECT @oldfile AS NEWNAME, @fullname AS OLDNAME, @len OLDLEN;
IF NOT EXISTS (SELECT * FROM sys.master_files WHERE name = 'test')
BEGIN
CREATE DATABASE test;
-- Verify the database files and sizes
SELECT *
FROM sys.master_files
WHERE name = 'test'
END
ELSE
BEGIN
ALTER DATABASE test
MODIFY FILE
(
NAME = test20100804,
FILENAME = @oldfile <<<------ Hier habe ich fehlermeldung
)
END
HTML:
Meldung 102, Ebene 15, Status 1, Zeile 34
Falsche Syntax in der Nähe von '@oldfile'.
Kennst sich da jemand aus? Eigentlich sollte alles funktionieren.