Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

OPENQUERY zgłasza błąd, gdy jest używany z WIN2K8\SQL2K12

Musisz ująć wartości DATETIME w pojedynczych cudzysłowach. A ponieważ twoje zapytanie jest samym łańcuchem, te pojedyncze cudzysłowy muszą zostać podwojone / zmienione w następujący sposób (i prawdopodobnie powinieneś również umieścić wartość pierwszego parametru w escaped-single-cudzysłów, ponieważ jest to wyraźnie łańcuch).

Należy również w pełni zakwalifikować nazwę procedury składowanej za pomocą [DatabaseName].[SchemaName]. .

A ponieważ vcs_gauge proc używa Dynamic SQL, musisz określić WITH RESULT SETS klauzula. Aby uzyskać więcej informacji na temat tej klauzuli, zobacz stronę MSDN dotyczącą WYKONAJ .

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dowiedz się, dlaczego nie udało się wysłać wiadomości e-mail w programie SQL Server (T-SQL)

  2. Sprawdzanie nakładania się przedziałów czasowych, problem strażnika [SQL]

  3. OPENROWSET BULK Uprawnienia do folderu udostępnionego

  4. Jak wyodrębnić wiele ciągów z pojedynczych wierszy w SQL Server

  5. Kombinacje wycinania w grupie