sql >> Database >  >> RDS >> Sqlserver

OPENQUERY genereert een fout bij gebruik met WIN2K8\SQL2K12

U moet DATETIME-waarden tussen enkele aanhalingstekens plaatsen. En aangezien uw zoekopdracht zelf in een tekenreeks staat, moeten die enkele aanhalingstekens als volgt worden verdubbeld / escaped (en u moet waarschijnlijk ook de waarde van de eerste parameter tussen escaped-enkele aanhalingstekens plaatsen omdat het duidelijk een tekenreeks is).

U moet ook de naam van de opgeslagen procedure volledig kwalificeren met [DatabaseName].[SchemaName]. .

En aangezien de vcs_gauge proc gebruikt Dynamische SQL, u moet de WITH RESULT SETS . specificeren clausule. Zie voor meer informatie over deze clausule de MSDN-pagina voor UITVOEREN .

SELECT *
INTO #tmpTable
FROM OPENQUERY([WIN2K8\SQL2K12],
             N'EXEC [DatabaseName].[SchemaName].vcs_gauge
                      @gauge_name = ''vs1_bag'',
                      @first_rec_time = ''2014-09-01 09:00:00'',
                      @last_rec_time = ''2014-09-01 10:00:00''
               WITH RESULT SETS ( { column_specification} );
             ');



  1. muterend, trigger / functie ziet het mogelijk niet - fout tijdens uitvoering van trigger

  2. ongeldig naampatroon bij poging om aangepaste objecttoewijzing van het orakeltype door te geven

  3. mysql-queryhulp voor een hiërarchieweergave

  4. Converteren van DateTime naar INT