2016-10-18 2 views
-4

gespeichert Erzeugen des Ich erhalte eine FehlermeldungFehler bei der Prozedur SQL Server 2008

SQL-Fehler (102): falsche Syntax nahe ')'

beim Versuch, das unter Abfrage als gespeichert zu speichern Verfahren.

Die Abfrage selbst (Entfernen der "Create Procedure" und Begin/End funktioniert gut) und gibt keine Syntaxfehler, und ich habe überall gesucht, aber ich bin ein bisschen fest, und es macht mich verrückt.

CREATE PROCEDURE "downdaly_file_info"() 
    LANGUAGE SQL 
    NOT DETERMINISTIC 
    CONTAINS SQL 
    SQL SECURITY DEFINER 
    COMMENT '' 
begin 
declare @file_name varchar(75) 
declare @agent_number varchar(15) 
declare @aid_batch varchar(15) 
declare @aid_agent varchar(15) 
declare @Policy_Company varchar(2) 
declare @Policy_Province2 varchar(2) 
declare @akey varchar(30) 

select @aid_batch=aid from audit with(nolock) where atype='OUT-BATCH' and akey like '%'[email protected]_name+'%' 
print @aid_batch 
select @aid_agent=aid from audit with(nolock) where atype='OUT-AGENT' and aid like @aid_batch+'-%' and [email protected]_number 
print @aid_agent 

select @akey=akey from audit with (nolock) where aid like @aid_agent+'-%' and atype='OUT-POLICY' 

SET @Policy_Company=substring(@akey,15,2) 
print @Policy_Company 

SET @Policy_Province2 = 
CASE 
WHEN @Policy_Company = 'CG' THEN substring(@akey,19,2) 
WHEN @Policy_Company = 'TR' THEN substring(@akey,20,2) 
WHEN @Policy_Company = 'EL' THEN substring(@akey,20,2) 
WHEN @Policy_Company = 'IC' THEN substring(@akey,22,2) 
WHEN @Policy_Company = 'PI' THEN substring(@akey,20,2) 
WHEN @Policy_Company = 'S&' THEN substring(@akey,20,2) 
END 
print @Policy_Province2 

insert into #downdaly_file_data (Name_Of_File, 
Agent_Number, 
Policy_Number, 
Transaction_Number, 
Policy_Province, 
Trans_Code, 
Policy_Company, 
Policy_Province2, 
Eff_Date_Real 
) 
select @file_name, 
@agent_number, 
substring(akey,1,12), 
SUBSTRING(adata,20,3), 
substring(adata,171,2), 
substring(adata,32,3), 
@Policy_Company, 
@Policy_Province2, 
substring(adata,139,6) 

from audit with (nolock) 
where aid like @aid_batch+'%' and atype='OUT-POLICY' 
end 
+1

Bearbeiten Sie die Frage und fügen Sie die genaue Fehlermeldung hinzu. –

+0

Sie verwenden MySQL-Syntax ... zumindest zwischen Ihrem 'CREATE' und Ihrem' BEGIN' ... – Shnugo

+1

[Schlechte Angewohnheiten: Putting NOLOCK überall] (https://blogs.sentryone.com/aaronbertrand/bad-habits- nolock-everywhere /) – sstan

Antwort

1

Sie können diese Informationen in Verfahren

LANGUAGE SQL 
NOT DETERMINISTIC 
CONTAINS SQL 
SQL SECURITY DEFINER 
COMMENT '' 

Hier die möglichen Optionen

CREATE { PROC | PROCEDURE } [schema_name.] procedure_name [ ; number ] 
    [ { @parameter [ type_schema_name. ] data_type } 
     [ VARYING ] [ = default ] [ OUT | OUTPUT | [READONLY] 
    ] [ ,...n ] 
[ WITH <procedure_option> [ ,...n ] ] 
[ FOR REPLICATION ] 
AS { [ BEGIN ] 

Fügen Sie auch, wenn Sie nicht parameters haben nicht hinzufügen Klammer. Hier ist der richtige Weg

CREATE PROCEDURE Downdaly_file_info 
AS 
    BEGIN 
    ---SQL statment 
    END 
+0

Yup, ich bin völlig neu dabei, aber der "richtige Weg", den du erwähnt hast, hat perfekt funktioniert. Vielen Dank! –

Verwandte Themen