OVH Cloud OVH Cloud

create database avec variable

1 réponse
Avatar
Christianbt
bonjour,
je souhaite faire une procédure stockée pour créer des bases de données
Deux pistes :
qd je fais un create database @dbname
= il me refuse cette synthaxe avec ma variable @dbname

qd je fais une copie de base avec l'instruction MOVE, comment écrire le nom
du fichier pour le fichier physique ?
exemple :
RESTORE DATABASE @dbname
from disk = 'C:\xxxx.bak'
WITH RECOVERY,
MOVE 'copy_Data' TO 'E:\MSSQL\data\@dbname_data.mdf',
MOVE 'copy_Log' TO 'E:\MSSQL\data\@dbname_log.ldf'
GO

merci pour votre aide...

1 réponse

Avatar
Fred BROUARD
bonjour

Christianbt a écrit:
bonjour,
je souhaite faire une procédure stockée pour créer des bases de données
Deux pistes :
qd je fais un create database @dbname
= il me refuse cette synthaxe avec ma variable @dbname



Normal


qd je fais une copie de base avec l'instruction MOVE, comment écrire le nom
du fichier pour le fichier physique ?



Move ne sert qu'a déplacer les fichiers. Une base de données n'est pas un fichier

exemple :
RESTORE DATABASE @dbname
from disk = 'C:xxxx.bak'
WITH RECOVERY,
MOVE 'copy_Data' TO 'E:',
MOVE 'copy_Log' TO 'E:'
GO




Pour faire ceci il faut utiliser le SQL dynamique :

DECLARE @DB_NAME sysname

DECLARE @SQL NVARCHAR(4000)

SET @SQL = 'CREATE DATABASE ' + @DB_NAME
EXEC (@SQL)

A +


merci pour votre aide...



--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************