Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

SQL Server 2008 - Auto Increment

Frage Entwicklung Datenbanken

Mitglied: ooAlbert

ooAlbert (Level 1) - Jetzt verbinden

19.10.2012 um 15:23 Uhr, 7002 Aufrufe, 6 Kommentare

Hi,

ich hab mal eine Frage zum Auto Increment im SQL Server 2008. Existiert die Möglichkeit eine bestehende Spalte nachträglich mit dieser Funktion zu versehen ohne das die bestehenden Inhalte der Spalte entfernt werden? Ich kenn das beispielsweise von Oracle, das man da ein Auto Increment definieren kann mit beliebigem Startwert und es da auch nicht relevant war was vorher in der Spalte stand oder steht.

Grüße
Mitglied: MadMax
20.10.2012 um 02:19 Uhr
Hallo ooAlbert,

direkt mit einem "alter table" dürfte das nicht gehen (aber probieren kostet ja nichts). Was allerdingst gehen müßte:
1. zu ändernde Spalte umbenennen
2. neue Spalte anlegen mit dem alten Namen der zu ändernden Spalte und mit identity-Eigenschaft
3. mit "set identity_insert <Tabelle> on" die identity-Eigenschaft vorübergehend ausschalten
4. die Inhalte der alten, umbenannten Spalte in die neue Spalte kopieren
5. alte, umbenannte Spalte löschen
6. identity-Eigenschaft mit "set identity_insert <Tabelle> off" wieder einschalten
7. mit "dbcc checkident" den Identitätswert prüfen bzw. ggf. neu setzen

Gruß, Mad Max
Bitte warten ..
Mitglied: ooAlbert
29.10.2012, aktualisiert um 15:54 Uhr
Hi,

ich habe das durchgeführt, jedoch lässt mich der SQL Server nicht die Werte aus der alten Spalte in die neue übertragen und meldet "Meldung 8102".

Grüße
Bitte warten ..
Mitglied: MadMax
30.10.2012 um 13:14 Uhr
Moin,

hört sich an, als wäre die identity-Eigenschaft nicht ausgeschaltet.

Aber warum nicht den einfachsten Weg gehen, im Management Studio zur Tabelle, rechte Maustaste, Entwerfen und dann dort der betreffenden Spalte die identity-Eigenschaft geben. Funktioniert, habe ich eben mal probiert. Und weil Du die Frage überhaupt gestellt hast, bin ich davon ausgegangen, daß der einfachste Weg gar nicht klappt. Klappt aber doch

Gruß, Mad Max
Bitte warten ..
Mitglied: ooAlbert
30.10.2012, aktualisiert um 13:26 Uhr
Ich hab zwichenzeitlich folgendes probiert. Eine Kopie der Tabelle erzeugt und die Spalte direkt mit Identity versehen. Dann wollte ich sowas machen:



set identity_insert tabelle2 on

insert into [db].[dbo].[tabelle2]
(
[Spalte1]
,[Spalte2]

)
select
[Spalte1]
,[Spalte2]

from [db].[dbo].[tabelle]

set identity_insert tabelle2 off

Geht aber nicht.
Meldung 515, Ebene 16, Status 2, Zeile 3
Der Wert NULL kann in die Spalte1-Spalte, db.dbo.tabelle2-Tabelle nicht eingefügt werden. Die Spalte lässt NULL-Werte nicht zu. Fehler bei INSERT.
Die Anweisung wurde beendet.

Ein simples update tabelle set spalte1=spalte wurde ebenfalls verweigert. Wenn ich, wie vorgeschlagen die Spalte in der bestehenden Tabelle neu angelegt hätte.

Kann es sein, das die zu übertragende Splate lückenlos sein muss, dh. ein durchgehender Anfangs- bis Endwert?
Bitte warten ..
Mitglied: MadMax
30.10.2012 um 17:04 Uhr
Hallo ooAlbert,

ein durchgehender Wert ist nicht nötig, interessanterweise noch nicht mal Eindeutigkeit. Aber was unbedingt sein muß und bei Dir nicht der Fall ist, die Spalte darf keine NULL-Werte enthalten. Wenn Du alle NULL-Werte in der Spalte beseitigst, wird es wahrscheinlich funktionieren.

Gruß, Mad Max
Bitte warten ..
Mitglied: ooAlbert
30.10.2012 um 17:09 Uhr
Ich hab den "Fehler" gefunden, da meine Spalte nicht bei 1 losgeht aber ohne genauere Definition bei 1 begonnen wird entstehgen beim einfügen für den SQL Server sogesehen "NULL Werte". Gebe ich jetzt einen Startwert vor, was der kleinste Wert in der bisherigen Spalte wäre klappt das auf einmal und Lücken zwischendrin sind dann auch egal

Jedoch muss ich die Tabellen neuerzeugen und über den Insert Befehl befüllen.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
SQL Server 2008 R2 SP3 neue Instanz (10)

Frage von technikdealer zum Thema Windows Server ...

Microsoft
gelöst DRINGEND: Suche Microsoft SQL SERVER 2008 R2 STANDARD Eval (8)

Frage von Xaero1982 zum Thema Microsoft ...

Datenbanken
gelöst 1GB phpMyAdmin SQL Datei in SQL Server 2008 R2 importieren (7)

Frage von Himpke zum Thema Datenbanken ...

Windows 10
gelöst SQL Server 2008 R2 kompatibel mit Windows 10? (14)

Frage von Sachellen zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...