none
System StoredProcedure ausführen RRS feed

  • Frage

  • Hallo,

    kann mir jemand veraten weshalb die Ausführung von "EXEC @RC =  sys.sp_addlinkedserver @server, @srvproduct, @provider, 
    @datasrc, @location, @provstr, @catalog;" nicht funktioniert. --> "Falsche Syntax in der Nähe von 'Exec'"

     @datasrc nvarchar(4000),
     @location tnvarchar(4000),
     @provstr nvarchar(4000),
     @catalog nvarchar(128),
    -- Set parameter values
     @server AS XLTEST_SP,
     @srvproduct AS Excel,
     @provider AS "Microsoft.Jet.OLEDB.4.0",
     @datasrc AS "c:\book1.xls",
     @provstr AS "Excel 8.0"

    EXEC @RC =  sys.sp_addlinkedserver @server, @srvproduct, @provider, 
    @datasrc, @location, @provstr, @catalog;

    RETURN 0

    Donnerstag, 19. September 2013 22:57

Antworten

  • Hallo,

    Variablen müssen zum einen mit DECLARE deklariert werden. Zuweisungen werden entweder beim DECLARE oder über eine SET Anweisung durchgeführt. Für oben - etwas gemischt um beides zu zeigen:

    DECLARE
    	@RC int,
    	-- Zuweisung bei der Initialisierung (SQL Server 2008++)
    	@server sysname = 'XLTEST_SP',
    	@srvproduct nvarchar(128) = 'Excel',
    	@provider nvarchar(128) = 'Microsoft.Jet.OLEDB.4.0';
    	
    DECLARE @datasrc nvarchar(4000),
    	@provstr nvarchar(4000),
    	@catalog nvarchar(128),		-- nicht verwendet (NULL)
    	@location nvarchar(4000);	-- nicht verwendet (NULL)
    	
    	-- Zuweisung via SET
    	SET @datasrc = 'c:\book1.xls';
    	SET @provstr = 'Excel 8.0';
    
    	EXEC @RC =  sys.sp_addlinkedserver @server, @srvproduct, @provider, 
    		@datasrc, @location, @provstr, @catalog;
    
    
    Gruß Elmar



    • Als Antwort vorgeschlagen Christoph Muthmann Freitag, 20. September 2013 05:52
    • Als Antwort markiert intern2011 Freitag, 20. September 2013 10:14
    Freitag, 20. September 2013 05:29
    Beantworter

Alle Antworten

  • Hallo,

    Variablen müssen zum einen mit DECLARE deklariert werden. Zuweisungen werden entweder beim DECLARE oder über eine SET Anweisung durchgeführt. Für oben - etwas gemischt um beides zu zeigen:

    DECLARE
    	@RC int,
    	-- Zuweisung bei der Initialisierung (SQL Server 2008++)
    	@server sysname = 'XLTEST_SP',
    	@srvproduct nvarchar(128) = 'Excel',
    	@provider nvarchar(128) = 'Microsoft.Jet.OLEDB.4.0';
    	
    DECLARE @datasrc nvarchar(4000),
    	@provstr nvarchar(4000),
    	@catalog nvarchar(128),		-- nicht verwendet (NULL)
    	@location nvarchar(4000);	-- nicht verwendet (NULL)
    	
    	-- Zuweisung via SET
    	SET @datasrc = 'c:\book1.xls';
    	SET @provstr = 'Excel 8.0';
    
    	EXEC @RC =  sys.sp_addlinkedserver @server, @srvproduct, @provider, 
    		@datasrc, @location, @provstr, @catalog;
    
    
    Gruß Elmar



    • Als Antwort vorgeschlagen Christoph Muthmann Freitag, 20. September 2013 05:52
    • Als Antwort markiert intern2011 Freitag, 20. September 2013 10:14
    Freitag, 20. September 2013 05:29
    Beantworter
  • Hallo Elmar, 

    vielen Dank für deine Hilfe. Ich brauch noch ein bisschen Übung :-). 

    Gruß 

    Issa

    Freitag, 20. September 2013 10:14