333 messaggi dal 09 luglio 2003
Ciao!
ho creato una procedura tramite codice vb.net nel database northwind di sqlserver in questo modo:

Me.SqlConnection1.Open()

Dim cmd As New SqlClient.SqlCommand
cmd.Connection = Me.SqlConnection1

Dim comando As String = "CREATE PROCEDURE SalesByCategory3 @CategoryName nvarchar(15), @OrdYear nvarchar(4) = '1999' AS IF @OrdYear != '1996' AND @OrdYear != '1997' AND @OrdYear != '1998' BEGIN SELECT @OrdYear = '1998' End SELECT ProductName,TotalPurchase=ROUND(SUM(CONVERT(decimal(14,2), OD.Quantity * (1-OD.Discount) * OD.UnitPrice)), 0) FROM [Order Details] OD, Orders O, Products P, Categories C WHERE OD.OrderID = O.OrderID AND OD.ProductID = P.ProductID AND P.CategoryID = C.CategoryIDAND C.CategoryName = @CategoryNameAND SUBSTRING(CONVERT(nvarchar(22), O.OrderDate, 111), 1, 4) = @OrdYear GROUP BY ProductName ORDER BY ProductName"
cmd.CommandText = comando

cmd.ExecuteScalar()

Quando il programma gira per la prima volta il sistema funziona. Successivamente invece mi restituisc un errore perchè la procedura esiste già.
Esiste un sistema (tipo create table if exists) per verificare l'esistenza delle procedure?

Grazie!

jordi75
43 messaggi dal 26 gennaio 2004
prima la cerchi,
poi la cancelli,
poi la ricostruisci:

IF EXIST(SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINE WHERE RROUTINE_TYPE ='PROCEDURE' AND ROUTINE_NAME='laMiaSP')
DROP PROCEDURE laMiaSP

CIAO
ma perche tutto questo lavoro?

crea la stored procedure la prima volta (ovvero quando installi l'applicazione) e poi ti limiti a richimarla, eventualmente se richiamndola viene generat un eccezione , la prendi in gestione e crei la stored procedure mancante, altrimenti immaginati decine di richieste concorrenti con stored procedure che vengono create e cancellate ogni volta, un lavoro immane per il server per nulla


ciao marco
Modificato da nostromo il 30 novembre 2004 14.21 -

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
43 messaggi dal 26 gennaio 2004
GIUSTO !!
IO USO QUESTA TENCICA IN FASE DI SVILUPPO.
E' SBAGLIATO ?
vincen ha scritto:
GIUSTO !!
IO USO QUESTA TENCICA IN FASE DI SVILUPPO.
E' SBAGLIATO ?


se intendi gestire le eccezioni direi di si :)

intendiamoci non esiste un solo modo per fare una cosa, ed una performante in un contesto potrebbe non esserlo in un altro

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.