webForumDet fria alternativet

Skapa IDENTITY på befintlig kolumn

Databaser & SQL

2 svar · 160 visningar · startad av ElMaco

Medlem sedan juni 2000161 inlägg
Frågan#1

Ok, jag har importerat en massa käcka tabeller från Access in i SQL 7.0. När detta väl skall göras "skarpt" vill jag pilla minimalt och förbereder därför ett gäng sql-filer med script.

Nycklar, constraints och lite annat som inte hänger med i konverteringen från Access till SQL har jag skapat men går bet på följande...

Det som utgör primärnyckeln i vissa tabeller får datatypen INT men får ingen IDENTITY. Hur slänger jag på en IDENTITY(1,1) med hjälp av T-SQL?

Har testat:

ALTER TABLE companies
  ALTER COLUMN companyID
    INT IDENTITY(1,1) NOT NULL

...men det blev ju inge bra.

Observera att jag vill inte göra detta manuellt från Enterprise Managerns Design-vy.

r: spellcheck

------------------
To understand recursion, we must first understand recursion.

[Redigerat av ElMaco den 28 jun 2001]

Medlem sedan juni 2000161 inlägg
#2

Ok, så här då...

Är det någon vänlig själ som vill starta en trace i Profiler och testa att lägga till en IDENTITY på en befintligt tabell via Enterpise Manager och sedan berätta för mig vad som skickas?

Pretty please with sugar on top...?

/M.

------------------
To understand recursion, we must first understand recursion.

Medlem sedan juni 2000161 inlägg
#3

I går kväll så stötte jag återigen på samma problem som ovan. Just vid detta tillfälle hade jag möjlighet att köra profilern parallellt med enterprise managern. Av resultatet att döma händer alltså följande:

OM jag vill lägga till IDENTITY på en kolumn som inte tidigare haft denna typ av räknare så måste tabellen omskapas. SQL-servern kopierar datan till en temporär tabell och nyskapar sedan den gamla med en ny identitykolumn istället.

OM man nu inte är sugen på att göra detta är det tveklöst lättast att ordna identity via enterprise manager, som @nders beskriver i http://cgi.webforum.nu/wf/Forum42/HTML/000156.html.

OM man tvingas skriva denna procedur i en *.sql-fil går det bra att kopiera instruktionerna från profilerns loggar.

SÅ - äntligen fick jag "closure" på den här frågan. :)

/M.

------------------
To understand recursion, we must first understand recursion.

253 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)