none
Nachträglich Spalte hinzufügen als Primary und Identity

    Frage

  • Hallo,

    kann mir jemand bitte erklären, wie man in Management Studio nachträglich eine Spalte hinzufügen kann, die dann als Primary und mit Identity ist?

    Ich versuche es so:

    Rechtsklick bei Spalten => Neue Spalte

    Dann gebe ich rechts den neuen Spaltennamen ein z.b. ID und wähle Bigint aus.Sobald ich aber NULL deaktiviere kommt eine Meldung wie:

    Tabelle 'kostenstelle'
    - Die Tabelle kann nicht geändert werden.  
    Mit ALTER TABLE können nur Spalten hinzugefügt werden, die NULL-Werte enthalten können

    Wenn ich die Spalte dann trotzdem mit erlaubten NULL anlege und dann hinterher auch Eigenschaften klicke, kann ich keine Identity aktivieren da alles ausgegraut ist.

    Vielen Dank für jeden Hinweis.

    Gruss

    Hans

    Mittwoch, 7. Februar 2018 10:53

Alle Antworten

  • Hallo Hans,

    ich würde es per TSQL machen!

    create table test(f1 int, f2 varchar(100));
    
    Insert into test(f1, f2) values (1, 'a'), (2,'b');
    Select *
    from test;
    
    Alter table test add my_ident bigint identity not null;
    
    Select *
    from test;
    
    drop table test;

    Das Management Studio scheint nicht zu erkennen, dass bei IDENTITY auch ein NOT NULL vorkommen kann.

    Wobei ich das gerade mit der Version 17.4 noch einmal ausprobiert habe und dort legt er eine temp-Tabelle an, kopiert die Daten rüber, löscht die alte Tabelle und benennt die temp-Tabelle um. 

    HTH!


    Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu


    Mittwoch, 7. Februar 2018 11:02
    Beantworter
  • Den Primary Key kannst Du dann per SSMS oder TSQL anlegen.

    ALTER TABLE dbo.test ADD CONSTRAINT
    	PK_test PRIMARY KEY CLUSTERED 
    	(
    	my_ident
    	) 


    Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu

    Mittwoch, 7. Februar 2018 11:08
    Beantworter
  • Hallo Christoph,

    ich habe SQL Server 2014.

    Das bedeutet wohl, dass man es nicht in Management Studio komplett machen kann?

    Aber trotzdem danke für die Möglichkeit mit TSQL.

    viele Grüße

    Hans

    Mittwoch, 7. Februar 2018 12:51
  • Doch, das geht. Lade Dir dazu am besten das aktuelle SSMS herunter:

    SQL Server Management Studio – (SSMS)

    Wenn Dir eine Antwort geholfen hat, markiere sie bitte, damit dieser Thread geschlossen wird.


    Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu

    Mittwoch, 7. Februar 2018 13:27
    Beantworter
  • Hallo Christoph,

    das habe ich doch schon. Das war ja meine Eingangsfrage. Ich hatte es ja in SSMS versucht.

    Gruss

    Hans

    Freitag, 9. Februar 2018 07:09
  • Hallo Hans,

    SSMS ist nur das Tool. Viele Wege führen nach Rom.

    Christoph meint, dass Du die "Clicky Bunit" Dinge auch mit T-SQL machen kannst.

    Geht schneller und funktioniert ohne die ganzen bunten Bildchen :)

    Also einfach den von Christoph genannten Weg in "Neue Abfrage"-Fenster eingeben und dann geht das...


    Uwe Ricken (Blog | Twitter)
    Microsoft Certiied Master - SQL Server 2008
    Microsoft Certified Solution Master - CHARTER Data Platform
    Microsoft Certified Solution Expert - Data Platform
    db Berater GmbH
    Microsoft SQL Server Blog (german only)

    Freitag, 9. Februar 2018 07:19