Je crée une table d'historique associée à chaque table principale en fonction de la requête suivante
SELECT TOP 0 * INTO HISTORY_TABLE FROM MASTER_TABLE
cette requête crée une table vide nommée HISTORY_TABLE
constitué de colonnes similaires aux colonnes de MASTER_TABLE
mais avec des contraintes "s qui sont appliquées à la MASTER_TABLE
.
alors est-il possible d'obtenir des colonnes sans contraintes?
Réponses:
0 pour la réponse № 1Ce n'est peut-être pas une bonne idée, mais c'est ce que vous voulez.
//This creates the table with constraints
SELECT TOP 0 * INTO HISTORY_TABLE FROM MASTER_TABLE
//This will drop all the constraints
DECLARE @database NVARCHAR(50)
DECLARE @table NVARCHAR(50)
DECLARE @sql NVARCHAR(255)
SET @database = "databasename"
SET @table = "HISTORY_TABLE"
WHILE EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE constraint_catalog=@database AND table_name=@table)
BEGIN
SELECT @sql = "ALTER TABLE " + @table + " DROP CONSTRAINT " + CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE constraint_catalog=@database AND table_name=@table
EXEC sp_executesql @sql
END
J'espère que ça aide.
0 pour la réponse № 2
Cela vous donne une table avec un ensemble propre de colonnes.
select top 0 * into #bounce from MASTER_TABLE
select * into HISTORY_TABLE from #bounce
Mais ils sont si propres que vous aurez besoin de définir les PK, les index, etc.