Como executar o procedimento de armazenamento do servidor SQL no programador SQL?

Foi-me dada uma conta de utilizador a uma base de dados SQL Server que só tem privilégios para executar um procedimento armazenado. Adicionei o JTDS SQL Server JDBC jar file ao Desenvolvedor SQL e adicionei-o como um driver JDBC de terceiros. Posso entrar com sucesso na base de dados do servidor SQL. Foi-me dada esta sintaxe para executar o procedimento:

EXEC proc_name 'paramValue1' 'paramValue2'

Quando eu executar isto como uma declaração ou um script, eu recebo este erro:

Error starting at line 1 in command:
EXEC proc_name 'paramValue1' 'paramValue2'
Error report:
Incorrect syntax near the keyword 'BEGIN'.
Tentei embrulhar a declaração em {[[2]}, mas obter o mesmo erro. É possível ligar para o procedimento do desenvolvedor SQL? Em caso afirmativo, que sintaxe devo usar?

Author: sdoca, 2010-11-09

9 answers

Não precisas de cláusula executiva. Basta utilizar
proc_name paramValue1, paramValue2

(e você precisa de vírgulas como Misnomer mencionado)

 201
Author: Tema, 2014-06-24 15:54:25
Estás desaparecido.,
EXEC proc_name 'paramValue1','paramValue2'
 63
Author: Vishal, 2010-11-09 17:56:18

Tens de fazer isto:

    exec procName 
    @parameter_1_Name = 'parameter_1_Value', 
    @parameter_2_name = 'parameter_2_value',
    @parameter_z_name = 'parameter_z_value'
 17
Author: Daniel, 2013-07-12 16:09:42
    EXECUTE [or EXEC] procedure_name
  @parameter_1_Name = 'parameter_1_Value', 
    @parameter_2_name = 'parameter_2_value',
    @parameter_z_name = 'parameter_z_value'
 4
Author: Prasanna Gulhane, 2015-03-30 13:44:35
EXEC proc_name @paramValue1 = 0, @paramValue2 = 'some text';
GO

Se o objectivo do procedimento armazenado é realizar um INSERT numa tabela que tenha um campo de identidade declarado, então o campo, neste cenário @paramValue1, deve ser declarado e apenas passar o valor 0, porque será auto-incremento.

 0
Author: chri3g91, 2016-11-07 17:48:06
Eu sei que este é o antigo. Mas isto pode ajudar outros.

Adicionei a função de chamada SP entre o início / fim. Aqui está um guião de trabalho.

ALTER Proc [dbo].[DepartmentAddOrEdit]
@Id int,
@Code varchar(100),
@Name varchar(100),
@IsActive bit ,
@LocationId int,
@CreatedBy int,
@UpdatedBy int
AS
    IF(@Id = 0)

    BEGIN
    INSERT INTO Department (Code,Name,IsActive,LocationId,CreatedBy,UpdatedBy,CreatedAt)
        VALUES(@Code,@Name,@IsActive,@LocationId,@CreatedBy,@UpdatedBy,CURRENT_TIMESTAMP)

    EXEC dbo.LogAdd @CreatedBy,'DEPARTMENT',@Name
    END

    ELSE

    UPDATE Department SET
        Code = @Code,
        Name = @Name,
        IsActive = @IsActive,
        LocationId = @LocationId,
        CreatedBy = @CreatedBy,
        UpdatedBy = @UpdatedBy,
        UpdatedAt =  CURRENT_TIMESTAMP 
    where Id = @Id 
 0
Author: Roshan Perera, 2018-05-21 11:34:30

Se apenas precisar de retirar o procedimento armazenado, proc_name 'paramValue1' , 'paramValue2'... ao mesmo tempo, você é excute mais do que uma consulta como uma consulta selecionada e procedimento armazenado que você tem que adicionar select * from tableName EXCE proc_name paramValue1 , paramValue2...

 -2
Author: Joel Prabhu, 2017-09-19 15:23:45

Os procedimentos armazenados podem ser executados na ferramenta de desenvolvimento sql usando a sintaxe abaixo

Comecem. procedurerename(); END;

Se houver alguns parâmetros, então tem que ser passado.

 -6
Author: Santhosh, 2013-07-09 14:01:34
Select * from Table name ..i.e(are you save table name in sql(TEST) k.

Select * from TEST then you will execute your project.
 -9
Author: user3110888, 2013-12-17 11:29:37