Sono un po 'un debuttante di SQL, quindi per favore sopporta me su questo. Il mio progetto è il seguente:MSSQL: esiste un modo per aggiungere automaticamente una voce a una tabella quando una voce viene aggiunta a un'altra tabella?
Utilizzo di MSSQL su Windows Server 2008 R2.
Esiste una tabella di database esistente, chiamiamola PRODOTTI, che contiene diverse migliaia di righe di dati, ovvero le informazioni sul prodotto per ogni azienda X di prodotti venduti. Le tre colonne a cui sono interessato sono ITEMGROUPID, ITEMID e ITEMNAME. L'ITEMID è la chiave primaria per questa tabella ed è un codice prodotto univoco. ITEMGROUPID indica in quale categoria di prodotti cade ciascun articolo e ITEMNAME si spiega da sé. Mi interessa solo una categoria di prodotti, quindi utilizzando ITEMGROUPID posso determinare quante righe avrà la mia tabella (attualmente 260).
Sto creando una tabella contenente alcuni parametri per rendere ciascuno di questi prodotti, chiamiamolo LINEPARAMETRI. Ad esempio, quando creiamo il Widget A, abbiamo bisogno che il Trasportatore B funzioni a Velocità C. Ho intenzione di creare una chiave esterna nella mia tabella, indicando l'ITEMID nell'altra tabella. Quindi ogni riga nella mia nuova tabella farà riferimento a un prodotto specifico nel database del prodotto esistente.
La mia domanda è, se si sviluppa un nuovo prodotto che corrisponde ai miei criteri (ITEMGROUPID = 'VALUE'), e inserito nella tabella esistente con un ITEMID, c'è un modo per la mia tabella di generare automaticamente una nuova riga con quel ITEMID e valori di default in tutte le altre colonne?
Non sono abbastanza sicuro di cosa intendi, c'è un modo leggermente diverso per esprimerlo? Per rendere meno ambiguo il tavolo a cui ti riferisci, ho modificato il mio post per dare ai due nomi definiti tabelle - potresti spiegare il tuo suggerimento usando quei nomi di tabella per evitare confusione? – ASForrest
@ASForrest OK, risposta aggiornata con esempio di codice – Bohemian
Ottenuto, ha senso. Tuttavia, solo circa il 10% dei prodotti nella tabella PRODOTTI richiede effettivamente una voce nella mia tabella (quelli in cui ITEMGROUPID = 'VALUE'), quindi mentre vedo il valore nel garantire che non ci siano problemi di integrità dei dati, non sono sicuro è la mia migliore strada da seguire. Tutto sommato, non è uno stopper se quel trigger dovesse essere cancellato; farlo automaticamente è davvero solo un piacere. Se dovessi attenermi al metodo di attivazione, come potrei modificare il codice di attivazione per inserire solo una riga in LINEPARAMETERS se la riga che era appena stata inserita in PRODOTTI ha (ITEMGROUPID = 'VALUE')? – ASForrest