Sie müssen DATETIME-Werte in einfache Anführungszeichen setzen. Und da sich Ihre Abfrage selbst in einem String befindet, müssen diese einfachen Anführungszeichen wie folgt verdoppelt / maskiert werden (und Sie sollten wahrscheinlich auch den Wert des ersten Parameters in einfache maskierte Anführungszeichen setzen, da es sich eindeutig um einen String handelt).
Sie sollten auch den Namen der gespeicherten Prozedur mit [DatabaseName].[SchemaName].
vollständig qualifizieren .
Und seit dem vcs_gauge
proc Dynamic SQL verwendet, müssen Sie WITH RESULT SETS
angeben Klausel. Weitere Informationen zu dieser Klausel finden Sie auf der MSDN-Seite für EXECUTE .
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} );
');