Bonjour à tous,
Sur SQL 2000 serveur
Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
façon définitive, en TSQL.
Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
Hors commande SET IDENTITY_INSERT MaTable ON
Merci pour votre réponse.
Emmanuel
Bonjour à tous,
Sur SQL 2000 serveur
Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
façon définitive, en TSQL.
Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
Hors commande SET IDENTITY_INSERT MaTable ON
Merci pour votre réponse.
Emmanuel
Bonjour à tous,
Sur SQL 2000 serveur
Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
façon définitive, en TSQL.
Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
Hors commande SET IDENTITY_INSERT MaTable ON
Merci pour votre réponse.
Emmanuel
Bonjour à tous,
Sur SQL 2000 serveur
Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
façon définitive, en TSQL.
Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
Hors commande SET IDENTITY_INSERT MaTable ON
Merci pour votre réponse.
Emmanuel
Bonjour à tous,
Sur SQL 2000 serveur
Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
façon définitive, en TSQL.
Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
Hors commande SET IDENTITY_INSERT MaTable ON
Merci pour votre réponse.
Emmanuel
Bonjour à tous,
Sur SQL 2000 serveur
Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
façon définitive, en TSQL.
Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
Hors commande SET IDENTITY_INSERT MaTable ON
Merci pour votre réponse.
Emmanuel
Bonjour,
Emmanuel a écrit :
> Bonjour à tous,
>
> Sur SQL 2000 serveur
>
> Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
> façon définitive, en TSQL.
>
> Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
>
> Hors commande SET IDENTITY_INSERT MaTable ON
>
> Merci pour votre réponse.
>
> Emmanuel
>
>
Possible, mais à très haut risque sur une base en production. En effet
il n'existe aucune commande directe du genre ALTER pour ce faire. VOus
devez faire un script transactionné supprimant la clef de la table et la
reconstruisant. Celoa n'est possible qu'en passant par une étape de
table ou colonne temporaire. Pour cela vous devez préalablement
supprimer toutes les contraintes de clefs étangère reposant sur cette
clef, et les index ...
Voici par exemple un tel script pour une base ne comportant que 2 tables :
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT FK__T_A_MAINT__MPC_I__7BB05806
GO
COMMIT
BEGIN TRANSACTION
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_D__7CA47C3F
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_U__7E8CC4B1
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_C__7F80E8EA
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_N__00750D23
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_N__0169315C
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_C__025D5595
GO
CREATE TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX
(
MIX_ID int NOT NULL,
MPC_ID int NOT NULL,
MIX_DATE_TIME datetime NULL,
MIX_OPERATION char(5) NULL,
MIX_SCHEMA_NAME sysname NOT NULL,
MIX_TABLE_NAME sysname NOT NULL,
MIX_INDEX_NAME sysname NOT NULL,
MIX_UNIQUE bit NULL,
MIX_CLUSTER bit NULL,
MIX_COL_ORDER_LIST varchar(2160) NULL,
MIX_INDEX_WITH varchar(200) NULL,
MIX_NO_ROW_LOCK bit NULL,
MIX_NO_PAGE_LOCK bit NULL,
MIX_ON_FILE sysname NULL,
MIX_COMPLETE bit NULL
) ON [PRIMARY]
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_D__7CA47C3F DEFAULT (getdate()) FOR MIX_DATE_TIME
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_U__7E8CC4B1 DEFAULT (0) FOR MIX_UNIQUE
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_C__7F80E8EA DEFAULT (0) FOR MIX_CLUSTER
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_N__00750D23 DEFAULT (0) FOR MIX_NO_ROW_LOCK
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_N__0169315C DEFAULT (0) FOR MIX_NO_PAGE_LOCK
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_C__025D5595 DEFAULT (0) FOR MIX_COMPLETE
GO
IF EXISTS(SELECT * FROM dbo.T_A_MAINTENANCE_INDEX_MIX)
EXEC('INSERT INTO dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX (MIX_ID, MPC_ID,
MIX_DATE_TIME, MIX_OPERATION, MIX_SCHEMA_NAME, MIX_TABLE_NAME,
MIX_INDEX_NAME, MIX_UNIQUE, MIX_CLUSTER, MIX_COL_ORDER_LIST,
MIX_INDEX_WITH, MIX_NO_ROW_LOCK, MIX_NO_PAGE_LOCK, MIX_ON_FILE,
MIX_COMPLETE)
SELECT MIX_ID, MPC_ID, MIX_DATE_TIME, MIX_OPERATION, MIX_SCHEMA_NAME,
MIX_TABLE_NAME, MIX_INDEX_NAME, MIX_UNIQUE, MIX_CLUSTER,
MIX_COL_ORDER_LIST, MIX_INDEX_WITH, MIX_NO_ROW_LOCK, MIX_NO_PAGE_LOCK,
MIX_ON_FILE, MIX_COMPLETE FROM dbo.T_A_MAINTENANCE_INDEX_MIX (HOLDLOCK
TABLOCKX)')
GO
DROP TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
GO
EXECUTE sp_rename N'dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX',
N'T_A_MAINTENANCE_INDEX_MIX', 'OBJECT'
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
PK_MIX PRIMARY KEY CLUSTERED
(
MIX_ID
) ON [PRIMARY]
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX WITH NOCHECK ADD CONSTRAINT
CK_MIX_OPR CHECK (([MIX_OPERATION] = 'RESET' or [MIX_OPERATION] = 'DROP'))
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX WITH NOCHECK ADD CONSTRAINT
FK__T_A_MAINT__MPC_I__7BB05806 FOREIGN KEY
(
MPC_ID
) REFERENCES dbo.T_A_MAINTENANCE_PROCESS_MPC
(
MPC_ID
)
GO
COMMIT
Pour le scénario d'un tel script, lire l'article que j'ai écrit :
>http://sqlpro.developpez.com/cours/sqlaz/ddl/?page=partie2#L7.6.1
A +
--
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 ***********************
Bonjour,
Emmanuel a écrit :
> Bonjour à tous,
>
> Sur SQL 2000 serveur
>
> Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
> façon définitive, en TSQL.
>
> Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
>
> Hors commande SET IDENTITY_INSERT MaTable ON
>
> Merci pour votre réponse.
>
> Emmanuel
>
>
Possible, mais à très haut risque sur une base en production. En effet
il n'existe aucune commande directe du genre ALTER pour ce faire. VOus
devez faire un script transactionné supprimant la clef de la table et la
reconstruisant. Celoa n'est possible qu'en passant par une étape de
table ou colonne temporaire. Pour cela vous devez préalablement
supprimer toutes les contraintes de clefs étangère reposant sur cette
clef, et les index ...
Voici par exemple un tel script pour une base ne comportant que 2 tables :
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT FK__T_A_MAINT__MPC_I__7BB05806
GO
COMMIT
BEGIN TRANSACTION
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_D__7CA47C3F
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_U__7E8CC4B1
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_C__7F80E8EA
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_N__00750D23
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_N__0169315C
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_C__025D5595
GO
CREATE TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX
(
MIX_ID int NOT NULL,
MPC_ID int NOT NULL,
MIX_DATE_TIME datetime NULL,
MIX_OPERATION char(5) NULL,
MIX_SCHEMA_NAME sysname NOT NULL,
MIX_TABLE_NAME sysname NOT NULL,
MIX_INDEX_NAME sysname NOT NULL,
MIX_UNIQUE bit NULL,
MIX_CLUSTER bit NULL,
MIX_COL_ORDER_LIST varchar(2160) NULL,
MIX_INDEX_WITH varchar(200) NULL,
MIX_NO_ROW_LOCK bit NULL,
MIX_NO_PAGE_LOCK bit NULL,
MIX_ON_FILE sysname NULL,
MIX_COMPLETE bit NULL
) ON [PRIMARY]
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_D__7CA47C3F DEFAULT (getdate()) FOR MIX_DATE_TIME
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_U__7E8CC4B1 DEFAULT (0) FOR MIX_UNIQUE
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_C__7F80E8EA DEFAULT (0) FOR MIX_CLUSTER
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_N__00750D23 DEFAULT (0) FOR MIX_NO_ROW_LOCK
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_N__0169315C DEFAULT (0) FOR MIX_NO_PAGE_LOCK
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_C__025D5595 DEFAULT (0) FOR MIX_COMPLETE
GO
IF EXISTS(SELECT * FROM dbo.T_A_MAINTENANCE_INDEX_MIX)
EXEC('INSERT INTO dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX (MIX_ID, MPC_ID,
MIX_DATE_TIME, MIX_OPERATION, MIX_SCHEMA_NAME, MIX_TABLE_NAME,
MIX_INDEX_NAME, MIX_UNIQUE, MIX_CLUSTER, MIX_COL_ORDER_LIST,
MIX_INDEX_WITH, MIX_NO_ROW_LOCK, MIX_NO_PAGE_LOCK, MIX_ON_FILE,
MIX_COMPLETE)
SELECT MIX_ID, MPC_ID, MIX_DATE_TIME, MIX_OPERATION, MIX_SCHEMA_NAME,
MIX_TABLE_NAME, MIX_INDEX_NAME, MIX_UNIQUE, MIX_CLUSTER,
MIX_COL_ORDER_LIST, MIX_INDEX_WITH, MIX_NO_ROW_LOCK, MIX_NO_PAGE_LOCK,
MIX_ON_FILE, MIX_COMPLETE FROM dbo.T_A_MAINTENANCE_INDEX_MIX (HOLDLOCK
TABLOCKX)')
GO
DROP TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
GO
EXECUTE sp_rename N'dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX',
N'T_A_MAINTENANCE_INDEX_MIX', 'OBJECT'
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
PK_MIX PRIMARY KEY CLUSTERED
(
MIX_ID
) ON [PRIMARY]
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX WITH NOCHECK ADD CONSTRAINT
CK_MIX_OPR CHECK (([MIX_OPERATION] = 'RESET' or [MIX_OPERATION] = 'DROP'))
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX WITH NOCHECK ADD CONSTRAINT
FK__T_A_MAINT__MPC_I__7BB05806 FOREIGN KEY
(
MPC_ID
) REFERENCES dbo.T_A_MAINTENANCE_PROCESS_MPC
(
MPC_ID
)
GO
COMMIT
Pour le scénario d'un tel script, lire l'article que j'ai écrit :
>http://sqlpro.developpez.com/cours/sqlaz/ddl/?page=partie2#L7.6.1
A +
--
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 ***********************
Bonjour,
Emmanuel a écrit :
> Bonjour à tous,
>
> Sur SQL 2000 serveur
>
> Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
> façon définitive, en TSQL.
>
> Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
>
> Hors commande SET IDENTITY_INSERT MaTable ON
>
> Merci pour votre réponse.
>
> Emmanuel
>
>
Possible, mais à très haut risque sur une base en production. En effet
il n'existe aucune commande directe du genre ALTER pour ce faire. VOus
devez faire un script transactionné supprimant la clef de la table et la
reconstruisant. Celoa n'est possible qu'en passant par une étape de
table ou colonne temporaire. Pour cela vous devez préalablement
supprimer toutes les contraintes de clefs étangère reposant sur cette
clef, et les index ...
Voici par exemple un tel script pour une base ne comportant que 2 tables :
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT FK__T_A_MAINT__MPC_I__7BB05806
GO
COMMIT
BEGIN TRANSACTION
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_D__7CA47C3F
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_U__7E8CC4B1
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_C__7F80E8EA
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_N__00750D23
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_N__0169315C
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_C__025D5595
GO
CREATE TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX
(
MIX_ID int NOT NULL,
MPC_ID int NOT NULL,
MIX_DATE_TIME datetime NULL,
MIX_OPERATION char(5) NULL,
MIX_SCHEMA_NAME sysname NOT NULL,
MIX_TABLE_NAME sysname NOT NULL,
MIX_INDEX_NAME sysname NOT NULL,
MIX_UNIQUE bit NULL,
MIX_CLUSTER bit NULL,
MIX_COL_ORDER_LIST varchar(2160) NULL,
MIX_INDEX_WITH varchar(200) NULL,
MIX_NO_ROW_LOCK bit NULL,
MIX_NO_PAGE_LOCK bit NULL,
MIX_ON_FILE sysname NULL,
MIX_COMPLETE bit NULL
) ON [PRIMARY]
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_D__7CA47C3F DEFAULT (getdate()) FOR MIX_DATE_TIME
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_U__7E8CC4B1 DEFAULT (0) FOR MIX_UNIQUE
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_C__7F80E8EA DEFAULT (0) FOR MIX_CLUSTER
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_N__00750D23 DEFAULT (0) FOR MIX_NO_ROW_LOCK
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_N__0169315C DEFAULT (0) FOR MIX_NO_PAGE_LOCK
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_C__025D5595 DEFAULT (0) FOR MIX_COMPLETE
GO
IF EXISTS(SELECT * FROM dbo.T_A_MAINTENANCE_INDEX_MIX)
EXEC('INSERT INTO dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX (MIX_ID, MPC_ID,
MIX_DATE_TIME, MIX_OPERATION, MIX_SCHEMA_NAME, MIX_TABLE_NAME,
MIX_INDEX_NAME, MIX_UNIQUE, MIX_CLUSTER, MIX_COL_ORDER_LIST,
MIX_INDEX_WITH, MIX_NO_ROW_LOCK, MIX_NO_PAGE_LOCK, MIX_ON_FILE,
MIX_COMPLETE)
SELECT MIX_ID, MPC_ID, MIX_DATE_TIME, MIX_OPERATION, MIX_SCHEMA_NAME,
MIX_TABLE_NAME, MIX_INDEX_NAME, MIX_UNIQUE, MIX_CLUSTER,
MIX_COL_ORDER_LIST, MIX_INDEX_WITH, MIX_NO_ROW_LOCK, MIX_NO_PAGE_LOCK,
MIX_ON_FILE, MIX_COMPLETE FROM dbo.T_A_MAINTENANCE_INDEX_MIX (HOLDLOCK
TABLOCKX)')
GO
DROP TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
GO
EXECUTE sp_rename N'dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX',
N'T_A_MAINTENANCE_INDEX_MIX', 'OBJECT'
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
PK_MIX PRIMARY KEY CLUSTERED
(
MIX_ID
) ON [PRIMARY]
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX WITH NOCHECK ADD CONSTRAINT
CK_MIX_OPR CHECK (([MIX_OPERATION] = 'RESET' or [MIX_OPERATION] = 'DROP'))
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX WITH NOCHECK ADD CONSTRAINT
FK__T_A_MAINT__MPC_I__7BB05806 FOREIGN KEY
(
MPC_ID
) REFERENCES dbo.T_A_MAINTENANCE_PROCESS_MPC
(
MPC_ID
)
GO
COMMIT
Pour le scénario d'un tel script, lire l'article que j'ai écrit :
>http://sqlpro.developpez.com/cours/sqlaz/ddl/?page=partie2#L7.6.1
A +
--
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 ***********************
Bonjour à tous,
Sur SQL 2000 serveur
Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
façon définitive, en TSQL.
Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
Hors commande SET IDENTITY_INSERT MaTable ON
Merci pour votre réponse.
Emmanuel
Bonjour à tous,
Sur SQL 2000 serveur
Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
façon définitive, en TSQL.
Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
Hors commande SET IDENTITY_INSERT MaTable ON
Merci pour votre réponse.
Emmanuel
Bonjour à tous,
Sur SQL 2000 serveur
Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
façon définitive, en TSQL.
Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
Hors commande SET IDENTITY_INSERT MaTable ON
Merci pour votre réponse.
Emmanuel
ce n'est pas possible de changer simplement le identity par le alter table
alter column ???
Si il ne veux pas supprimer ca cle mais gerer sa valeur lui meme ?
j'ai jamais ete confronté a ce cas alors j'en profite pour me renseigner !
"SQLpro [MVP]" a écrit dans le message de
news:%Bonjour,
Emmanuel a écrit :Bonjour à tous,
Sur SQL 2000 serveur
Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
façon définitive, en TSQL.
Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
Hors commande SET IDENTITY_INSERT MaTable ON
Merci pour votre réponse.
Emmanuel
Possible, mais à très haut risque sur une base en production. En effet
il n'existe aucune commande directe du genre ALTER pour ce faire. VOus
devez faire un script transactionné supprimant la clef de la table et la
reconstruisant. Celoa n'est possible qu'en passant par une étape de
table ou colonne temporaire. Pour cela vous devez préalablement
supprimer toutes les contraintes de clefs étangère reposant sur cette
clef, et les index ...
Voici par exemple un tel script pour une base ne comportant que 2 tables :
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT FK__T_A_MAINT__MPC_I__7BB05806
GO
COMMIT
BEGIN TRANSACTION
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_D__7CA47C3F
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_U__7E8CC4B1
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_C__7F80E8EA
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_N__00750D23
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_N__0169315C
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_C__025D5595
GO
CREATE TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX
(
MIX_ID int NOT NULL,
MPC_ID int NOT NULL,
MIX_DATE_TIME datetime NULL,
MIX_OPERATION char(5) NULL,
MIX_SCHEMA_NAME sysname NOT NULL,
MIX_TABLE_NAME sysname NOT NULL,
MIX_INDEX_NAME sysname NOT NULL,
MIX_UNIQUE bit NULL,
MIX_CLUSTER bit NULL,
MIX_COL_ORDER_LIST varchar(2160) NULL,
MIX_INDEX_WITH varchar(200) NULL,
MIX_NO_ROW_LOCK bit NULL,
MIX_NO_PAGE_LOCK bit NULL,
MIX_ON_FILE sysname NULL,
MIX_COMPLETE bit NULL
) ON [PRIMARY]
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_D__7CA47C3F DEFAULT (getdate()) FOR MIX_DATE_TIME
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_U__7E8CC4B1 DEFAULT (0) FOR MIX_UNIQUE
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_C__7F80E8EA DEFAULT (0) FOR MIX_CLUSTER
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_N__00750D23 DEFAULT (0) FOR MIX_NO_ROW_LOCK
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_N__0169315C DEFAULT (0) FOR MIX_NO_PAGE_LOCK
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_C__025D5595 DEFAULT (0) FOR MIX_COMPLETE
GO
IF EXISTS(SELECT * FROM dbo.T_A_MAINTENANCE_INDEX_MIX)
EXEC('INSERT INTO dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX (MIX_ID, MPC_ID,
MIX_DATE_TIME, MIX_OPERATION, MIX_SCHEMA_NAME, MIX_TABLE_NAME,
MIX_INDEX_NAME, MIX_UNIQUE, MIX_CLUSTER, MIX_COL_ORDER_LIST,
MIX_INDEX_WITH, MIX_NO_ROW_LOCK, MIX_NO_PAGE_LOCK, MIX_ON_FILE,
MIX_COMPLETE)
SELECT MIX_ID, MPC_ID, MIX_DATE_TIME, MIX_OPERATION, MIX_SCHEMA_NAME,
MIX_TABLE_NAME, MIX_INDEX_NAME, MIX_UNIQUE, MIX_CLUSTER,
MIX_COL_ORDER_LIST, MIX_INDEX_WITH, MIX_NO_ROW_LOCK, MIX_NO_PAGE_LOCK,
MIX_ON_FILE, MIX_COMPLETE FROM dbo.T_A_MAINTENANCE_INDEX_MIX (HOLDLOCK
TABLOCKX)')
GO
DROP TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
GO
EXECUTE sp_rename N'dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX',
N'T_A_MAINTENANCE_INDEX_MIX', 'OBJECT'
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
PK_MIX PRIMARY KEY CLUSTERED
(
MIX_ID
) ON [PRIMARY]
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX WITH NOCHECK ADD CONSTRAINT
CK_MIX_OPR CHECK (([MIX_OPERATION] = 'RESET' or [MIX_OPERATION] = 'DROP'))
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX WITH NOCHECK ADD CONSTRAINT
FK__T_A_MAINT__MPC_I__7BB05806 FOREIGN KEY
(
MPC_ID
) REFERENCES dbo.T_A_MAINTENANCE_PROCESS_MPC
(
MPC_ID
)
GO
COMMIT
Pour le scénario d'un tel script, lire l'article que j'ai écrit :
>http://sqlpro.developpez.com/cours/sqlaz/ddl/?page=partie2#L7.6.1
A +
--
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 ***********************
ce n'est pas possible de changer simplement le identity par le alter table
alter column ???
Si il ne veux pas supprimer ca cle mais gerer sa valeur lui meme ?
j'ai jamais ete confronté a ce cas alors j'en profite pour me renseigner !
"SQLpro [MVP]" <brouardf@club-internet.fr> a écrit dans le message de
news:%23yi1Au6jGHA.4304@TK2MSFTNGP03.phx.gbl...
Bonjour,
Emmanuel a écrit :
Bonjour à tous,
Sur SQL 2000 serveur
Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
façon définitive, en TSQL.
Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
Hors commande SET IDENTITY_INSERT MaTable ON
Merci pour votre réponse.
Emmanuel
Possible, mais à très haut risque sur une base en production. En effet
il n'existe aucune commande directe du genre ALTER pour ce faire. VOus
devez faire un script transactionné supprimant la clef de la table et la
reconstruisant. Celoa n'est possible qu'en passant par une étape de
table ou colonne temporaire. Pour cela vous devez préalablement
supprimer toutes les contraintes de clefs étangère reposant sur cette
clef, et les index ...
Voici par exemple un tel script pour une base ne comportant que 2 tables :
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT FK__T_A_MAINT__MPC_I__7BB05806
GO
COMMIT
BEGIN TRANSACTION
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_D__7CA47C3F
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_U__7E8CC4B1
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_C__7F80E8EA
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_N__00750D23
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_N__0169315C
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_C__025D5595
GO
CREATE TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX
(
MIX_ID int NOT NULL,
MPC_ID int NOT NULL,
MIX_DATE_TIME datetime NULL,
MIX_OPERATION char(5) NULL,
MIX_SCHEMA_NAME sysname NOT NULL,
MIX_TABLE_NAME sysname NOT NULL,
MIX_INDEX_NAME sysname NOT NULL,
MIX_UNIQUE bit NULL,
MIX_CLUSTER bit NULL,
MIX_COL_ORDER_LIST varchar(2160) NULL,
MIX_INDEX_WITH varchar(200) NULL,
MIX_NO_ROW_LOCK bit NULL,
MIX_NO_PAGE_LOCK bit NULL,
MIX_ON_FILE sysname NULL,
MIX_COMPLETE bit NULL
) ON [PRIMARY]
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_D__7CA47C3F DEFAULT (getdate()) FOR MIX_DATE_TIME
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_U__7E8CC4B1 DEFAULT (0) FOR MIX_UNIQUE
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_C__7F80E8EA DEFAULT (0) FOR MIX_CLUSTER
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_N__00750D23 DEFAULT (0) FOR MIX_NO_ROW_LOCK
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_N__0169315C DEFAULT (0) FOR MIX_NO_PAGE_LOCK
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_C__025D5595 DEFAULT (0) FOR MIX_COMPLETE
GO
IF EXISTS(SELECT * FROM dbo.T_A_MAINTENANCE_INDEX_MIX)
EXEC('INSERT INTO dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX (MIX_ID, MPC_ID,
MIX_DATE_TIME, MIX_OPERATION, MIX_SCHEMA_NAME, MIX_TABLE_NAME,
MIX_INDEX_NAME, MIX_UNIQUE, MIX_CLUSTER, MIX_COL_ORDER_LIST,
MIX_INDEX_WITH, MIX_NO_ROW_LOCK, MIX_NO_PAGE_LOCK, MIX_ON_FILE,
MIX_COMPLETE)
SELECT MIX_ID, MPC_ID, MIX_DATE_TIME, MIX_OPERATION, MIX_SCHEMA_NAME,
MIX_TABLE_NAME, MIX_INDEX_NAME, MIX_UNIQUE, MIX_CLUSTER,
MIX_COL_ORDER_LIST, MIX_INDEX_WITH, MIX_NO_ROW_LOCK, MIX_NO_PAGE_LOCK,
MIX_ON_FILE, MIX_COMPLETE FROM dbo.T_A_MAINTENANCE_INDEX_MIX (HOLDLOCK
TABLOCKX)')
GO
DROP TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
GO
EXECUTE sp_rename N'dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX',
N'T_A_MAINTENANCE_INDEX_MIX', 'OBJECT'
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
PK_MIX PRIMARY KEY CLUSTERED
(
MIX_ID
) ON [PRIMARY]
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX WITH NOCHECK ADD CONSTRAINT
CK_MIX_OPR CHECK (([MIX_OPERATION] = 'RESET' or [MIX_OPERATION] = 'DROP'))
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX WITH NOCHECK ADD CONSTRAINT
FK__T_A_MAINT__MPC_I__7BB05806 FOREIGN KEY
(
MPC_ID
) REFERENCES dbo.T_A_MAINTENANCE_PROCESS_MPC
(
MPC_ID
)
GO
COMMIT
Pour le scénario d'un tel script, lire l'article que j'ai écrit :
>http://sqlpro.developpez.com/cours/sqlaz/ddl/?page=partie2#L7.6.1
A +
--
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 ***********************
ce n'est pas possible de changer simplement le identity par le alter table
alter column ???
Si il ne veux pas supprimer ca cle mais gerer sa valeur lui meme ?
j'ai jamais ete confronté a ce cas alors j'en profite pour me renseigner !
"SQLpro [MVP]" a écrit dans le message de
news:%Bonjour,
Emmanuel a écrit :Bonjour à tous,
Sur SQL 2000 serveur
Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
façon définitive, en TSQL.
Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
Hors commande SET IDENTITY_INSERT MaTable ON
Merci pour votre réponse.
Emmanuel
Possible, mais à très haut risque sur une base en production. En effet
il n'existe aucune commande directe du genre ALTER pour ce faire. VOus
devez faire un script transactionné supprimant la clef de la table et la
reconstruisant. Celoa n'est possible qu'en passant par une étape de
table ou colonne temporaire. Pour cela vous devez préalablement
supprimer toutes les contraintes de clefs étangère reposant sur cette
clef, et les index ...
Voici par exemple un tel script pour une base ne comportant que 2 tables :
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT FK__T_A_MAINT__MPC_I__7BB05806
GO
COMMIT
BEGIN TRANSACTION
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_D__7CA47C3F
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_U__7E8CC4B1
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_C__7F80E8EA
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_N__00750D23
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_N__0169315C
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
DROP CONSTRAINT DF__T_A_MAINT__MIX_C__025D5595
GO
CREATE TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX
(
MIX_ID int NOT NULL,
MPC_ID int NOT NULL,
MIX_DATE_TIME datetime NULL,
MIX_OPERATION char(5) NULL,
MIX_SCHEMA_NAME sysname NOT NULL,
MIX_TABLE_NAME sysname NOT NULL,
MIX_INDEX_NAME sysname NOT NULL,
MIX_UNIQUE bit NULL,
MIX_CLUSTER bit NULL,
MIX_COL_ORDER_LIST varchar(2160) NULL,
MIX_INDEX_WITH varchar(200) NULL,
MIX_NO_ROW_LOCK bit NULL,
MIX_NO_PAGE_LOCK bit NULL,
MIX_ON_FILE sysname NULL,
MIX_COMPLETE bit NULL
) ON [PRIMARY]
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_D__7CA47C3F DEFAULT (getdate()) FOR MIX_DATE_TIME
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_U__7E8CC4B1 DEFAULT (0) FOR MIX_UNIQUE
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_C__7F80E8EA DEFAULT (0) FOR MIX_CLUSTER
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_N__00750D23 DEFAULT (0) FOR MIX_NO_ROW_LOCK
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_N__0169315C DEFAULT (0) FOR MIX_NO_PAGE_LOCK
GO
ALTER TABLE dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
DF__T_A_MAINT__MIX_C__025D5595 DEFAULT (0) FOR MIX_COMPLETE
GO
IF EXISTS(SELECT * FROM dbo.T_A_MAINTENANCE_INDEX_MIX)
EXEC('INSERT INTO dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX (MIX_ID, MPC_ID,
MIX_DATE_TIME, MIX_OPERATION, MIX_SCHEMA_NAME, MIX_TABLE_NAME,
MIX_INDEX_NAME, MIX_UNIQUE, MIX_CLUSTER, MIX_COL_ORDER_LIST,
MIX_INDEX_WITH, MIX_NO_ROW_LOCK, MIX_NO_PAGE_LOCK, MIX_ON_FILE,
MIX_COMPLETE)
SELECT MIX_ID, MPC_ID, MIX_DATE_TIME, MIX_OPERATION, MIX_SCHEMA_NAME,
MIX_TABLE_NAME, MIX_INDEX_NAME, MIX_UNIQUE, MIX_CLUSTER,
MIX_COL_ORDER_LIST, MIX_INDEX_WITH, MIX_NO_ROW_LOCK, MIX_NO_PAGE_LOCK,
MIX_ON_FILE, MIX_COMPLETE FROM dbo.T_A_MAINTENANCE_INDEX_MIX (HOLDLOCK
TABLOCKX)')
GO
DROP TABLE dbo.T_A_MAINTENANCE_INDEX_MIX
GO
EXECUTE sp_rename N'dbo.Tmp_T_A_MAINTENANCE_INDEX_MIX',
N'T_A_MAINTENANCE_INDEX_MIX', 'OBJECT'
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX ADD CONSTRAINT
PK_MIX PRIMARY KEY CLUSTERED
(
MIX_ID
) ON [PRIMARY]
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX WITH NOCHECK ADD CONSTRAINT
CK_MIX_OPR CHECK (([MIX_OPERATION] = 'RESET' or [MIX_OPERATION] = 'DROP'))
GO
ALTER TABLE dbo.T_A_MAINTENANCE_INDEX_MIX WITH NOCHECK ADD CONSTRAINT
FK__T_A_MAINT__MPC_I__7BB05806 FOREIGN KEY
(
MPC_ID
) REFERENCES dbo.T_A_MAINTENANCE_PROCESS_MPC
(
MPC_ID
)
GO
COMMIT
Pour le scénario d'un tel script, lire l'article que j'ai écrit :
>http://sqlpro.developpez.com/cours/sqlaz/ddl/?page=partie2#L7.6.1
A +
--
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 ***********************
Le plus simple est de regarder avec le profiler ce que fait Entreprise
Il doit probablement recreer la table....
--
Bien Cordialement
Med Bouchenafa
"Emmanuel" wrote:
> Bonjour à tous,
>
> Sur SQL 2000 serveur
>
> Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
> façon définitive, en TSQL.
>
> Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
>
> Hors commande SET IDENTITY_INSERT MaTable ON
>
> Merci pour votre réponse.
>
> Emmanuel
>
>
>
Le plus simple est de regarder avec le profiler ce que fait Entreprise
Il doit probablement recreer la table....
--
Bien Cordialement
Med Bouchenafa
"Emmanuel" wrote:
> Bonjour à tous,
>
> Sur SQL 2000 serveur
>
> Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
> façon définitive, en TSQL.
>
> Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
>
> Hors commande SET IDENTITY_INSERT MaTable ON
>
> Merci pour votre réponse.
>
> Emmanuel
>
>
>
Le plus simple est de regarder avec le profiler ce que fait Entreprise
Il doit probablement recreer la table....
--
Bien Cordialement
Med Bouchenafa
"Emmanuel" wrote:
> Bonjour à tous,
>
> Sur SQL 2000 serveur
>
> Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
> façon définitive, en TSQL.
>
> Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
>
> Hors commande SET IDENTITY_INSERT MaTable ON
>
> Merci pour votre réponse.
>
> Emmanuel
>
>
>
Bonjour a tous,
Effectivement, je viens de regarder avec le profiler. Très intérressant
Il contruit une table temporaire (identique à l'originale sans IDENTITY )
Il transfert les datas vers cette table temporaire
Il drop la table
Il la reconstruit....
Pourquoi faire simple quand on peux faire compliqué.....
On conclusion, on ne peut pas supprimer IDENTIY, en TSQL, de facon simple.
Merci à tous pour votre aide.
Bonne journée
Emmanuel
"Med Bouchenafa" a écrit dans le message de
news:Le plus simple est de regarder avec le profiler ce que fait Entreprise
Manager.Il doit probablement recreer la table....
--
Bien Cordialement
Med Bouchenafa
"Emmanuel" wrote:Bonjour à tous,
Sur SQL 2000 serveur
Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
façon définitive, en TSQL.
Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
Hors commande SET IDENTITY_INSERT MaTable ON
Merci pour votre réponse.
Emmanuel
Bonjour a tous,
Effectivement, je viens de regarder avec le profiler. Très intérressant
Il contruit une table temporaire (identique à l'originale sans IDENTITY )
Il transfert les datas vers cette table temporaire
Il drop la table
Il la reconstruit....
Pourquoi faire simple quand on peux faire compliqué.....
On conclusion, on ne peut pas supprimer IDENTIY, en TSQL, de facon simple.
Merci à tous pour votre aide.
Bonne journée
Emmanuel
"Med Bouchenafa" <com.hotmail@bouchenafa> a écrit dans le message de
news:2EE1304A-53D1-4CF2-B46F-600045E2C3C9@microsoft.com...
Le plus simple est de regarder avec le profiler ce que fait Entreprise
Manager.
Il doit probablement recreer la table....
--
Bien Cordialement
Med Bouchenafa
"Emmanuel" wrote:
Bonjour à tous,
Sur SQL 2000 serveur
Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
façon définitive, en TSQL.
Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
Hors commande SET IDENTITY_INSERT MaTable ON
Merci pour votre réponse.
Emmanuel
Bonjour a tous,
Effectivement, je viens de regarder avec le profiler. Très intérressant
Il contruit une table temporaire (identique à l'originale sans IDENTITY )
Il transfert les datas vers cette table temporaire
Il drop la table
Il la reconstruit....
Pourquoi faire simple quand on peux faire compliqué.....
On conclusion, on ne peut pas supprimer IDENTIY, en TSQL, de facon simple.
Merci à tous pour votre aide.
Bonne journée
Emmanuel
"Med Bouchenafa" a écrit dans le message de
news:Le plus simple est de regarder avec le profiler ce que fait Entreprise
Manager.Il doit probablement recreer la table....
--
Bien Cordialement
Med Bouchenafa
"Emmanuel" wrote:Bonjour à tous,
Sur SQL 2000 serveur
Est'il possible de supprimer IDENTITY sur une table à incrémentation, de
façon définitive, en TSQL.
Exemple: une commande ALTER TABLE maTable ALTER COLUMN .....
Hors commande SET IDENTITY_INSERT MaTable ON
Merci pour votre réponse.
Emmanuel