Announcement

Collapse
No announcement yet.

Insert Anweisung inkl. Select Abfrage?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Insert Anweisung inkl. Select Abfrage?

    Hallo!

    Ich habe folgendes Problem: Ich möchte mittels C# einen Eintrag in eine MS SQL 2005 Datenbanktabelle einfügen. Nun ist es so, dass ein Wert eingetragen werden muss der in einer anderen Tabelle gespeichert ist.

    Beispiel:

    Code:
    INSERT INTO Table1(subject_name, subject_Table2ID)
    Nun ist mir subject_name bekannt, aber subject_Table2ID müsste ich erst in Erfahrung bringen à la:

    Code:
    SELECT Table2ID FROM Table2 WHERE Table2Name LIKE 'KNOWNNAME'
    KNOWNNAME ist ebenfalls bekannt.
    Kann man diese beiden Anweisungen zu einer zusammenfassen?

    Wäre für jeden Tip dankbar.

    Viele Grüße!

  • #2
    [highlight=sql]INSERT INTO Table1(subject_name,
    (
    SELECT Table2Id
    FROM Table2
    WHERE Table2Name LIKE 'KNOWNNAME'
    )
    )[/highlight]

    Comment


    • #3
      Ich habe es nun mal mit mit dieser Anweisung probiert:

      Code:
      INSERT INTO Table1(subject_name, subject_Table2ID) VALUES('TEST', (SELECT Table2ID FROM Table2 WHERE Table2Name LIKE 'KNOWNNAME'))
      Damit komm ich leider auch nicht weiter da dann eine Fehlermeldung angezeigt wird:

      Unterabfragen sind in diesem Kontext nicht zulässig. Es sind nur Skalarausdrücke zulässig.

      Funktionieren Unterabfragen nur in bestimmten MS SQL Server Versionen?

      Comment


      • #4
        [highlight="sql"]
        insert into Tabelle1 (<Felder>) select <Felder> from tabelle 2;
        [/highlight]

        Comment


        • #5
          Um bei Deinem Ansatz zu bleiben, Du kannst die Konstante 'Test' in die Select-Anweisung aufnehmen:
          [highlight=SQL]INSERT INTO Table1
          (subject_name, subject_Table2ID)
          SELECT 'TEST' AS subject_name, Table2ID
          FROM Table2
          WHERE Table2Name LIKE 'KNOWNNAME'[/highlight]
          Olaf Helper

          <Blog> <Xing>
          * cogito ergo sum * errare humanum est * quote erat demonstrandum *
          Wenn ich denke, ist das ein Fehler und das beweise ich täglich

          Comment


          • #6
            Klasse!

            Der Tip von O. Helper hat mir immens weitergeholfen.
            Vielen vielen Dank!!

            Viele Grüße

            Comment

            Working...
            X