Bonjour,
Comment passe-t-on un champ auto incrémenté en non incrémenté?
Management studio recrée une table, ce qui me paraît lourd surtout que ma table est peuplée.
Voilà la table actuelle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CREATE TABLE [dbo].[Dim_Time](
	[TimeKey] [int] IDENTITY(1,1) NOT NULL,
	[FullDateAlternateKey] [datetime] NOT NULL,
	[DayNumberOfWeek] [tinyint] NULL,
	[EnglishDayNameOfWeek] [nvarchar](10) NULL,
	[SpanishDayNameOfWeek] [nvarchar](10) NULL,
	[FrenchDayNameOfWeek] [nvarchar](10) NULL,
	[DayNumberOfMonth] [tinyint] NULL,
	[DayNumberOfYear] [smallint] NULL,
	[WeekNumberOfYear] [tinyint] NULL,
	[EnglishMonthName] [nvarchar](10) NULL,
	[SpanishMonthName] [nvarchar](10) NULL,
	[FrenchMonthName] [nvarchar](10) NULL,
	[MonthNumberOfYear] [tinyint] NULL,
	[CalendarQuarter] [tinyint] NULL,
	[CalendarYear] [char](4) NULL,
	[CalendarSemester] [tinyint] NULL,
	[FiscalQuarter] [tinyint] NULL,
	[FiscalYear] [char](4) NULL,
	[FiscalSemester] [tinyint] NULL,
 CONSTRAINT [PK_Dim_Time] PRIMARY KEY CLUSTERED 
(
	[FullDateAlternateKey] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
Voilà ce que j'ai essayé et qui ne marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
if exists (
	SELECT *
	FROM sys.TABLES AS T
	JOIN sys.COLUMNS AS C
		ON T.object_id = C.object_id
	WHERE T.name = 'Dim_Time'
	and c.name='TimeKey'
	and  C.is_identity=1)
begin 
	print 'champ autoincrémenté'
 ALTER TABLE Dim_Time 
	ALTER COLUMN TimeKey int NOT NULL;
end
Et quand j'execute le code plusieurs fois, j'obtiens
'champ autoincrémenté' plusieurs fois.
Avez vous une idée?
PS : Je ne suis pas responsable de la structure de cette table. Elle est utilisée dans une dimension SSAS, et j'ai peur de tout casser en changeant sa structure de façon drastique
Cordialement
Soazig