Ho un sito web relativamente semplice che usa php + mssql. Ho varie stored procedure che eseguono semplici operazioni di inserimento e cancellazione. Il problema che sto affrontando è che molti dei parametri che passo nella stored procedure hanno la stessa lunghezza della colonna in cui inserirò i dati.sql server stored procedure usa varchar max come parametro
Ad esempio, ho una stored procedure per registrare un utente. La stored procedure ha un parametro @USERNAME
con varchar(12)
come tipo. la colonna USERNAME
nella tabella USER
ha lo stesso tipo con quella lunghezza. In linea di principio questo non è davvero un problema. Ma preferirei poter modificare liberamente la lunghezza della colonna USERNAME
senza dover modificare anche la lunghezza del parametro della stored procedure.
Non riesco a utilizzare i parametri con valori di tabella poiché i driver php mssql non li supportano.
L'unica soluzione che posso immaginare è quella di utilizzare solo varchar (max) per i parametri della stored procedure, ma è considerata una cattiva pratica?
A mio parere, i parametri della stored procedure dovrebbero riflettere il tipo di colonna sottostante. Ciò eviterà errori di troncamento in fase di esecuzione e fornirà un'interfaccia di stored procedure autodocumentata. –
IMHO, non essere così restrittivo con le lunghezze del campo. Lo spazio su disco è economico, e SQL Server è veloce, e la cosa più importante ... le cose cambiano –
o usa le risorse sql dei parametri meglio per il controllo della versione o crea UDT per ogni campo nel tuo database. allora hai solo bisogno di cambiare le definizioni per influenzare sia la tabella che i proc memorizzati – Mark