Qu'elle est la syntaxe permettant de créer un compteur, donner sa valeur et
son incrément sur une colonne sans modifier son contenu, ni recreer la table.
Il est possible de le faire par l'interface graphique, ça doit donc être
faisable par script transact SQL.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
SQLpro [MVP]
La Tulipe a écrit :
Qu'elle est la syntaxe permettant de créer un compteur, donner sa valeur et son incrément sur une colonne sans modifier son contenu, ni recreer la table. Il est possible de le faire par l'interface graphique, ça doit donc être faisable par script transact SQL.
Voici :
CREATE TABLE T_SANS_COMPTEUR_SCP (SCP_ID INT NOT NULL PRIMARY KEY, SCP_DATA VARCHAR(16)) GO
INSERT INTO T_SANS_COMPTEUR_SCP VALUES (1, 'titi') INSERT INTO T_SANS_COMPTEUR_SCP VALUES (5, 'tata') GO
-- ajout du compteur à la table T_SANS_COMPTEUR_SCP :
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 CREATE TABLE dbo.Tmp_T_SANS_COMPTEUR_SCP ( SCP_ID int NOT NULL IDENTITY (1, 1), SCP_DATA varchar(16) NULL ) ON [PRIMARY] GO SET IDENTITY_INSERT dbo.Tmp_T_SANS_COMPTEUR_SCP ON GO IF EXISTS(SELECT * FROM dbo.T_SANS_COMPTEUR_SCP) EXEC('INSERT INTO dbo.Tmp_T_SANS_COMPTEUR_SCP (SCP_ID, SCP_DATA) SELECT SCP_ID, SCP_DATA FROM dbo.T_SANS_COMPTEUR_SCP (HOLDLOCK TABLOCKX)') GO SET IDENTITY_INSERT dbo.Tmp_T_SANS_COMPTEUR_SCP OFF GO DROP TABLE dbo.T_SANS_COMPTEUR_SCP GO EXECUTE sp_rename N'dbo.Tmp_T_SANS_COMPTEUR_SCP', N'T_SANS_COMPTEUR_SCP', 'OBJECT' GO ALTER TABLE dbo.T_SANS_COMPTEUR_SCP ADD CONSTRAINT PK__T_SANS_COMPTEUR___10E07F16 PRIMARY KEY CLUSTERED ( SCP_ID ) ON [PRIMARY]
GO COMMIT
Merci de vos réponses
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 ***********************
La Tulipe a écrit :
Qu'elle est la syntaxe permettant de créer un compteur, donner sa valeur et
son incrément sur une colonne sans modifier son contenu, ni recreer la table.
Il est possible de le faire par l'interface graphique, ça doit donc être
faisable par script transact SQL.
Voici :
CREATE TABLE T_SANS_COMPTEUR_SCP
(SCP_ID INT NOT NULL PRIMARY KEY,
SCP_DATA VARCHAR(16))
GO
INSERT INTO T_SANS_COMPTEUR_SCP VALUES (1, 'titi')
INSERT INTO T_SANS_COMPTEUR_SCP VALUES (5, 'tata')
GO
-- ajout du compteur à la table T_SANS_COMPTEUR_SCP :
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
CREATE TABLE dbo.Tmp_T_SANS_COMPTEUR_SCP
(
SCP_ID int NOT NULL IDENTITY (1, 1),
SCP_DATA varchar(16) NULL
) ON [PRIMARY]
GO
SET IDENTITY_INSERT dbo.Tmp_T_SANS_COMPTEUR_SCP ON
GO
IF EXISTS(SELECT * FROM dbo.T_SANS_COMPTEUR_SCP)
EXEC('INSERT INTO dbo.Tmp_T_SANS_COMPTEUR_SCP (SCP_ID, SCP_DATA)
SELECT SCP_ID, SCP_DATA FROM dbo.T_SANS_COMPTEUR_SCP (HOLDLOCK TABLOCKX)')
GO
SET IDENTITY_INSERT dbo.Tmp_T_SANS_COMPTEUR_SCP OFF
GO
DROP TABLE dbo.T_SANS_COMPTEUR_SCP
GO
EXECUTE sp_rename N'dbo.Tmp_T_SANS_COMPTEUR_SCP',
N'T_SANS_COMPTEUR_SCP', 'OBJECT'
GO
ALTER TABLE dbo.T_SANS_COMPTEUR_SCP ADD CONSTRAINT
PK__T_SANS_COMPTEUR___10E07F16 PRIMARY KEY CLUSTERED
(
SCP_ID
) ON [PRIMARY]
GO
COMMIT
Merci de vos réponses
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 ***********************
Qu'elle est la syntaxe permettant de créer un compteur, donner sa valeur et son incrément sur une colonne sans modifier son contenu, ni recreer la table. Il est possible de le faire par l'interface graphique, ça doit donc être faisable par script transact SQL.
Voici :
CREATE TABLE T_SANS_COMPTEUR_SCP (SCP_ID INT NOT NULL PRIMARY KEY, SCP_DATA VARCHAR(16)) GO
INSERT INTO T_SANS_COMPTEUR_SCP VALUES (1, 'titi') INSERT INTO T_SANS_COMPTEUR_SCP VALUES (5, 'tata') GO
-- ajout du compteur à la table T_SANS_COMPTEUR_SCP :
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 CREATE TABLE dbo.Tmp_T_SANS_COMPTEUR_SCP ( SCP_ID int NOT NULL IDENTITY (1, 1), SCP_DATA varchar(16) NULL ) ON [PRIMARY] GO SET IDENTITY_INSERT dbo.Tmp_T_SANS_COMPTEUR_SCP ON GO IF EXISTS(SELECT * FROM dbo.T_SANS_COMPTEUR_SCP) EXEC('INSERT INTO dbo.Tmp_T_SANS_COMPTEUR_SCP (SCP_ID, SCP_DATA) SELECT SCP_ID, SCP_DATA FROM dbo.T_SANS_COMPTEUR_SCP (HOLDLOCK TABLOCKX)') GO SET IDENTITY_INSERT dbo.Tmp_T_SANS_COMPTEUR_SCP OFF GO DROP TABLE dbo.T_SANS_COMPTEUR_SCP GO EXECUTE sp_rename N'dbo.Tmp_T_SANS_COMPTEUR_SCP', N'T_SANS_COMPTEUR_SCP', 'OBJECT' GO ALTER TABLE dbo.T_SANS_COMPTEUR_SCP ADD CONSTRAINT PK__T_SANS_COMPTEUR___10E07F16 PRIMARY KEY CLUSTERED ( SCP_ID ) ON [PRIMARY]
GO COMMIT
Merci de vos réponses
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 ***********************