MySQL: Problem beim Tabelle kopieren?

2 Antworten

Mit

SET IDENTITY_INSERT Wochenplan ON;

gibst du der SQL-Datenbank zu verstehen, dass du bei folgenden INSERT-Anfragen das IDENTITY-Feld selbst setzen möchtest. Normalerweise wird dieser Wert automatisch von der Datenbank generiert. Wenn du bspw. eine ID-Spalte hast, die bei jedem neuen Eintrag um einen Zähler hochgezählt wird, brauchst du dich nicht darum kümmern.

Ein konkretes Beispiel:

CREATE TABLE [dbo].[Person] (
  [ID] INT NOT NULL IDENTITY(1, 1),
  [FirstName] NVARCHAR(120) NOT NULL,
  [LastName] NVARCHAR(120) NOT NULL
)

Wenn du für diese Datenbanktabelle neue Einträge anlegen möchtest, reicht die Angabe von FirstName und LastName.

INSERT INTO [dbo].[Person] ([FirstName], [LastName])
VALUES ('Bud', 'Spencer')
INSERT INTO [dbo].[Person] ([FirstName], [LastName])
VALUES ('Terence', 'Hill')

Wenn du diese Autogeneration der ID jedoch deaktivierst, musst du sie selbst setzen.

INSERT INTO [dbo].[Person] ([ID], [FirstName], [LastName])
VALUES (1, 'Bud', 'Spencer')
INSERT INTO [dbo].[Person] ([ID], [FirstName], [LastName])
VALUES (2, 'Terence', 'Hill')

Entferne also entweder diese beiden Anfragen:

string sqltext = "SET IDENTITY_INSERT Wochenplan ON;";
cmd = new SqlCommand(sqltext, cn1);
cmd.ExecuteNonQuery();
// ...
sqltext = "SET IDENTITY_INSERT Wochenplan OFF;";
cmd = new SqlCommand(sqltext, cn1);
cmd.ExecuteNonQuery();

oder reiche bei jedem INSERT einen eigenen gültigen Wert für deine IDENTITY-Spalte mit an die Datenbank.

Guck dir doch einfach an was es macht im SQL ... oder weisst Du gar nciht was du da eigentlich machst ?

http://www.sql-server-helper.com/error-messages/msg-545.aspx

sagt ja genau was das problem ist . Das musst Du jetzt nur noch verstehen .


Tobia737 
Beitragsersteller
 30.07.2021, 20:59

Erhlich gesagt hat mir sas nicht geholfen. Dort geht es ja um eine einfach Insert Anweisung hier wird ja eine Tabelle kopiert.

regex9  30.07.2021, 21:22
@Tobia737

Aber TEXT ist doch sicherlich nicht deine IDENTITY-Spalte? Die musst du explizit mit kopieren, wenn du die Autogeneration deaktivierst.

Tobia737 
Beitragsersteller
 31.07.2021, 00:43
@regex9

Ich konnte mein Problem selbst lösen. Hab ne andere Methode gefunden.

TechPech1984  31.07.2021, 00:45
@Tobia737

Ich sag ja, du verstehst SQL Server gar nicht , aber darfst Leider schon programmieren damit . Leider Leider ist das heut zu tage normal . Dementsprechend sieht das in der IT auch aus . Früher hat man das im Team mit einem gemacht der wirklich Ahnung hat und sich auch im SQL die Ausgabe anguckt was passiert , also echtes debugging betreibt .

Tobia737 
Beitragsersteller
 31.07.2021, 00:48
@TechPech1984

Also eigentlich bin ich 16 und bring mir das grad ein bisschen selber als Hobby bei aber ja.

TechPech1984  31.07.2021, 00:48
@regex9

am besten man hilft nicht weiter , dem frager gehts nicht um teamarbeit sondern ganz alleine darum sich selber zu verwirklichen . verstehen ist da ausgeschlossen .

regex9  31.07.2021, 03:02
@Tobia737

Wie sieht die denn nun konkret aus? Anderen Lesern mit demselben Problem kann sie womöglich weiterhelfen oder aber jemand von hier kann dir Empfehlungen geben, wenn es besser geht.