2010-07-20 30 views

risposta

37

Access 2010 ha sia stored procedure che trigger di tabella. E, entrambe le funzionalità sono disponibili anche quando non si utilizza un server (quindi, in modalità basata su file al 100%).

Se si utilizza SQL Server con Access, ovviamente le procedure memorizzate vengono create utilizzando SQL Server e non Access.

Per Access 2010, si apre la tabella (vista non di progettazione) e quindi si sceglie la scheda tabella. Vedete le opzioni lì per creare procedure negozio e trigger di tabella.

Ad esempio:

alt text

Nota che la lingua stored procedure è il suo sapore proprio come Oracle o SQL Server (T-SQL). Ecco un esempio di codice per aggiornare un inventario di frutta come risultato di un aggiornamento nella tabella degli ordini di frutta alt text

Ricordare che si tratta di trigger di tabella livello motore veri. Infatti se apri quella tabella con VB6, VB.NET, FoxPro o addirittura modifichi la tabella su un computer SENZA l'installazione di Access, verranno eseguiti il ​​codice procedurale e il trigger a livello di tabella. Quindi, questa è una nuova funzionalità di Data Engine Jet (ora chiamata ACE) per Access 2010. Come notato, questo è un codice procedurale che viene eseguito, non solo una singola istruzione.

+0

grazie ... molto informativo :) – yonan2236

+0

Interessante char – Fionnuala

+0

l'utente non dice nulla su SQL Server. –

6

Se si intende il tipo di procedura che si trova in SQL Server, prima del 2010, non è possibile. Se si desidera una query che accetta un parametro, è possibile utilizzare la finestra di progettazione query:

PARAMETERS SomeParam Text(10); 
SELECT Field FROM Table 
WHERE OtherField=SomeParam 

si può anche dire:

CREATE PROCEDURE ProcedureName 
    (Parameter1 datatype, Parameter2 datatype) AS 
    SQLStatement 

Da: http://msdn.microsoft.com/en-us/library/aa139977(office.10).aspx#acadvsql_procs

Si noti che la procedura contiene solo una dichiarazione.

+0

Vedere la mia risposta qui. Access 2010 ora dispone sia di trigger che di codice procedurale che viene eseguito a livello del motore –

+0

Apprezzo le tue risposte, grazie ragazzi. – yonan2236

Problemi correlati