Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Dupliquer une table entre deux bases

4 réponses
Avatar
Gislain ROCHE
Bonjour,

Dans un script SQL je cherche à dupliquer une table avec son contenue entre
deux bases.
Un lot DTS fait ça très bien, mais le pb est qu'il génère un script "CREATE
TABLE" ce qui m'oblige à chaque changement de structure de la table à
refaire le lot DTS. Cette option n'est pas acceptable pour moi car j'ai un
grand nombre de tables et je ne souhaite pas gérer ce cas de figure.

Comment puis-je faire ?

Merci d'avance

G. ROCHE

4 réponses

Avatar
bruno reiter [MVP]
if not exists (select * from dbo.sysobjects where id object_id(N'[dbo].[Categories]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

begin
CREATE TABLE [dbo].[Categories] (
[CategoryID] [int] IDENTITY (1, 1) NOT NULL ,
[CategoryName] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AI NOT NULL ,
[Description] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AI NULL ,
[Picture] [image] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
end


br



"Gislain ROCHE" wrote in message
news:
Bonjour,

Dans un script SQL je cherche à dupliquer une table avec son contenue entre
deux bases.
Un lot DTS fait ça très bien, mais le pb est qu'il génère un script "CREATE
TABLE" ce qui m'oblige à chaque changement de structure de la table à
refaire le lot DTS. Cette option n'est pas acceptable pour moi car j'ai un
grand nombre de tables et je ne souhaite pas gérer ce cas de figure.

Comment puis-je faire ?

Merci d'avance

G. ROCHE




Avatar
Gislain ROCHE
Je ne peut pas utiliser cette méthode car cela m'oblige à connaître la
structure de la table.
Je souhaiterais avoir une procédure me permettant de dupliquer n'importe
qu'elle table d'une base à l'autre.

Merci.

"bruno reiter [MVP]" a écrit dans le message
de news:

if not exists (select * from dbo.sysobjects where id > object_id(N'[dbo].[Categories]') and OBJECTPROPERTY(id, N'IsUserTable') 1)

begin
CREATE TABLE [dbo].[Categories] (
[CategoryID] [int] IDENTITY (1, 1) NOT NULL ,
[CategoryName] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AI NOT


NULL ,
[Description] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AI NULL ,
[Picture] [image] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
end


br



"Gislain ROCHE" wrote in message
news:
> Bonjour,
>
> Dans un script SQL je cherche à dupliquer une table avec son contenue


entre
> deux bases.
> Un lot DTS fait ça très bien, mais le pb est qu'il génère un script


"CREATE
> TABLE" ce qui m'oblige à chaque changement de structure de la table à
> refaire le lot DTS. Cette option n'est pas acceptable pour moi car j'ai


un
> grand nombre de tables et je ne souhaite pas gérer ce cas de figure.
>
> Comment puis-je faire ?
>
> Merci d'avance
>
> G. ROCHE
>
>




Avatar
Pierre Goiffon
Dans le message:,
Gislain ROCHE a écrit:
Dans un script SQL je cherche à dupliquer une table avec son contenue
entre deux bases.
Un lot DTS fait ça très bien, mais le pb est qu'il génère un script
"CREATE TABLE" ce qui m'oblige à chaque changement de structure de la
table à refaire le lot DTS.



Pourquoi pas un simple SELECT ... INTO ... ?

--
..::: Pierre GOIFFON :::..

Un grand merci à OE Quote Fix pour rendre OE utilisable :)
=> http://home.in.tum.de/~jain/software/quotefix.php

(email temporairement supprimé pour cause de déferlante Swen :( )
Avatar
bruno reiter [MVP]
si la table existe, ça ne fonctionnera pas et les contraintes et autres objets
associés n'y seront pas en création avec select into.

br

"Pierre Goiffon" wrote in message
news:bmj9fb$k3s$
Dans le message:,
Gislain ROCHE a écrit:
> Dans un script SQL je cherche à dupliquer une table avec son contenue
> entre deux bases.
> Un lot DTS fait ça très bien, mais le pb est qu'il génère un script
> "CREATE TABLE" ce qui m'oblige à chaque changement de structure de la
> table à refaire le lot DTS.

Pourquoi pas un simple SELECT ... INTO ... ?

--
..::: Pierre GOIFFON :::..

Un grand merci à OE Quote Fix pour rendre OE utilisable :)
=> http://home.in.tum.de/~jain/software/quotefix.php

(email temporairement supprimé pour cause de déferlante Swen :( )