J'ai une table dans une base de données SQL Server locale. Je veux recréer cette table dans une base de données hébergée.
Ce que je veux faire, c'est avoir un script qui, lorsqu'il est exécuté sur la base de données hébergée, cette table est recréée avec toutes les données, etc.
Comment créer ce script à l'aide de SQL Server Management Studio? Merci.
1- Ouvrez SQL Server Management Studio.
2- Faites un clic droit sur la base de données qui contient votre table souhaitée.
3- Sélectionnez "Tâches => Générer des scripts ...".
4- Suivez l'assistant et choisissez les objets pour lesquels vous souhaitez générer des scripts (Tables, Vues, Procédures stockées, etc ...).
5- À partir de l'étape suivante, cliquez sur "Avancé", et pour le nœud qui est étiqueté "Types de données à script" choisissez "Schéma et données".
6- Sauvegardez votre script et souriez :)
select 'create table [' + so.name + '] (' + o.list + ')' + CASE WHEN tc.Constraint_Name IS NULL THEN '' ELSE 'ALTER TABLE ' + so.Name + ' ADD CONSTRAINT ' + tc.Constraint_Name + ' PRIMARY KEY ' + ' (' + LEFT(j.List, Len(j.List)-1) + ')' END
from sysobjects so
cross apply
(SELECT
' ['+column_name+'] ' +
data_type + case data_type
when 'sql_variant' then ''
when 'text' then ''
when 'ntext' then ''
when 'xml' then ''
when 'decimal' then '(' + cast(numeric_precision as varchar) + ', ' + cast(numeric_scale as varchar) + ')'
else coalesce('('+case when character_maximum_length = -1 then 'MAX' else cast(character_maximum_length as varchar) end +')','') end + ' ' +
case when exists (
select id from syscolumns
where object_name(id)=so.name
and name=column_name
and columnproperty(id,name,'IsIdentity') = 1
) then
'IDENTITY(' +
cast(ident_seed(so.name) as varchar) + ',' +
cast(ident_incr(so.name) as varchar) + ')'
else ''
end + ' ' +
(case when IS_NULLABLE = 'No' then 'NOT ' else '' end ) + 'NULL ' +
case when information_schema.columns.COLUMN_DEFAULT IS NOT NULL THEN 'DEFAULT '+ information_schema.columns.COLUMN_DEFAULT ELSE '' END + ', '
from information_schema.columns where table_name = so.name
order by ordinal_position
FOR XML PATH('')) o (list)
left join
information_schema.table_constraints tc
on tc.Table_name = so.Name
AND tc.Constraint_Type = 'PRIMARY KEY'
cross apply
(select '[' + Column_Name + '], '
FROM information_schema.key_column_usage kcu
WHERE kcu.Constraint_Name = tc.Constraint_Name
ORDER BY
ORDINAL_POSITION
FOR XML PATH('')) j (list)
where xtype = 'U'
AND name NOT IN ('dtproperties')
Vous pouvez le faire à l'aide de la tâche de base de données Générer des scripts. Cliquez avec le bouton droit sur la base de données> Tâches> Générer des scripts ... Choisissez "Sélectionner des objets de base de données spécifiques" et la table souhaitée.
Sur la page Définir les options de script, cliquez sur Avancé. Il y a une option "Types de données à script", choisissez "Schéma et données". Choisissez où l'enregistrer. Prochain. Prochain. Terminer.
C'est la réponse cependant, si la table contient une grande quantité de données, je recommande d'utiliser bcp out ou une autre méthode pour exporter les données. Si le nouveau serveur se trouve sur le même réseau, vous pouvez également le sélectionner en tant que serveur lié.
La méthode de script générera des instructions d'insertion individuelles.