Visualizzazione dei risultati da 1 a 8 su 8

Discussione: insert in 2 tabelle

  1. #1

    insert in 2 tabelle

    Ciao.

    Vorrei sapere come posso fare per inserire dei dati
    in 2 tabelle con gli stessi record, contemporaneamente.

    Grazie per le risposte.

  2. #2
    Non puoi, puoi al massimo creare una stored che inserisca i dati in tutte e due facendo due insert oppure creare un trigger sull'inserimento in una tabella che automaticamente inserisca i dati in nell'altra.

    Ciao.

  3. #3
    Lo script che uso ora per inserire i dati nelle 2 tabelle è questo:

    strSQL = "INSERT INTO Iscritti (email, ip, data) VALUES" &_
    "('" & email & "', '" & strIP & "', '" & now() & "')"

    strSQL_bk = "INSERT INTO Report (email, ip, data) VALUES" &_
    "('" & email & "', '" & strIP & "', '" & now() & "')"

    Set objRS = Server.CreateObject("ADODB.Recordset")
    objRS.Open strSQL, objConn
    objRS.Open strSQL_bk, objConn

    Come mi consigli di modificarlo( se va modificato)??

  4. #4
    Solo per una questione di eleganza (non altro) io farei questa modifica:

    strSQL = "INSERT INTO Iscritti (email, ip, data) VALUES" &_
    "('" & email & "', '" & strIP & "', '" & now() & "')"

    strSQL_bk = "INSERT INTO Report (email, ip, data) VALUES" &_
    "('" & email & "', '" & strIP & "', '" & now() & "')"

    objConn.Execute strSQL
    objConn.Execute strSQL_bk


    Meno codice da gestire.
    Io invece farei un intervento più radicale sul db, quindi creerei nella tabella Iscritti un trigger di INSERT che fa esattamente la seconda INSERT co i records contenuti nella tabella INSERTED.
    Se ti serve ti posso mandare il trigger.

    Ciao.

  5. #5
    Se mi manderesti il trigger mi faresti un grande favore.

    Ah, come db uso Access xp.

    Grazie ancora.

  6. #6
    Ecco lo script suppergiù, modificalo dove ritieni opportuno (magari i tipi di dati, ecc...), ma lo schema è questo:

    CREATE TRIGGER OnAddNew ON [dbo].[Report]
    FOR INSERT
    AS

    DECLARE @Email VARCHAR(100)
    DECLARE @IP VARCHAR(11)
    DECLARE @Data DateTime


    SELECT @Email = Email, @IP = IP, @Data = Data FROM INSERTED

    INSERT INTO Report (Email, IP, Data) VALUES (@Email, @IP, @Data)

    GO

  7. #7
    Azz ho letto adesso che usi Access. Io non lo conosco, non so dirti se supporta i triggers....mi sembra strano.

    Ciao

  8. #8
    Infatti, ho visto che Access non supporta i trigger.
    cmq grazie lo stesso ne farò uso per un futuro uso di SQL al posto ddi Access.

    Ciao.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.