Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [SQL SERVER 2008 R2] Lancio Stored Procedure con imputazione valori delle variabili tramite cmd

    Buongiorno a tutti,

    avrei necessità di sapre come posso passare ad una stored procedure il valore di una variabile per l'esecuzione della stored stessa.

    Es.

    nella declare della sp oltre alle altre variabili ho le seguenti

    codice:
    @da AS date = '2018-12-04',
    @a   AS  date = '2018-12-05',
    vorrei, tramite un cmd dare la possibilità all'utente di lanciare la sp dichiarando il da /a tramite un imput; è possibile fare sì che il batch chieda di imputare le due date necessarie all'esecuzione della sp?

    Grazie.
    IncorrectSyntax

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da IncorrectSintax Visualizza il messaggio
    avrei necessità di sapre come posso passare ad una stored procedure il valore di una variabile ......
    ..........
    ..... è possibile fare sì che ....... tramite un cmd .......
    è certamente possibile,
    storicamente lo ho gia fatto ma in questo momento mi sfugge la sintassi ..... .....

    aiutami anche te:
    Con un .cmd quale sintassi usi per lanciare una Stored senza parametri ?? (connessione al DB autenticazione ecc)

    poi magari riesco a farti un esempio
    - con la agguinta del parametro
    - e la richiesta diretta del parametro da parte del .cmd

    .

  3. #3
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Mi sono ripassato da me il procedimento (come si fa in fretta a dimenticare la roba non utilizzata)

    Ho fatto un esempio molto, molto, molto basilare

    Un DB di nome "Test03"
    autenticazione di SQLServer

    Una tabella di nome "T1"
    con 4 campi
    - Idx - Key autoincrementale ----- ( questa non ci interessa per l'esempio)
    - c01 - nvarchar(50) ---- (qui scriverò un testo fisso)
    - c04 - nvarchar(50) ---- (qui scriverò in formato testo la data e ora corrente)
    - c05 - nvarchar(50) ---- (qui scriverò il parametro che inserisco nel .bat)



    Una Stored di nome "Stor02" cosi fatta
    codice:
    USE [Test03]
    GO
    /****** Object:  StoredProcedure [dbo].[Stor02]    Script Date: 08/12/2018 22:06:56 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    
    
    
    
    ALTER PROCEDURE [dbo].[Stor02]
    
    
    @Param1 nvarchar(50) 
        
    AS   
        INSERT INTO [dbo].[T1] ([c01], [c04], [c05]) VALUES (N'TestoFisso', GETDATE(), @Param1);


    Infine con un file .bat lancio la Stored da remoto
    codice:
    @ECHO Off
    
    
    SET Serv=NomeDelTuoServerSQL
    SET Uten=NomeDellUtenteDiSQLServer
    SET Pass=PasswordDellUtente
    SET DaBa=Test03
    
    
    
    
    ECHO ***** Scrivi sotto il parametro e premi invio  (Max 50 caratteri) ******
    REM   La opzione /P richiede all'utente di digitare il parametro
    SET /P Para= 
    
    
    
    
    REM Eseguo la Stored con il parametro digitato sopra
    sqlcmd -S %Serv% -U %Uten% -P %Pass% -d %DaBa% -Q "EXEC [dbo].[Stor02] N'%Para%';"

    Leggiti anche questi:
    http://www.brescianet.com/appunti/infobase/dosbatch.htm
    http://www.brescianet.com/appunti/in...helpCreato.htm
    https://technet.microsoft.com/it-it/...=sql.105).aspx
    https://notesbyparth.wordpress.com/2...-batch-script/




    Attenzione: Se ricordo bene i file .bat con comandi SQL (sqlcmd) funzionano solo su PC su cui è installato SQLServer
    diversamente devi usare dei file .vbs

    .
    Ultima modifica di nman; 08-12-2018 a 23:37

  4. #4
    Grazie!! Ora la studio ci provo e ti faccio sapere.
    IncorrectSyntax

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.