2014-03-06 14 views
0

我不得不將生產SQL服務器從SQL 2008遷移到SQL 2012.下面的代碼片段與2008年一起工作良好。出於某種原因。它抱怨從MS SQL調用HTTP命令

「'HTTP'不被識別爲內部或外部命令,可操作 程序或批處理文件。」

有人能讓我知道是怎麼回事嗎?

DECLARE @cmdstr VARCHAR(8000) 
DECLARE @URL varchar(8000) 
SET @URL = '"My_URL"' 

CREATE TABLE #cmd_result (OUTPUT VARCHAR(8000)) 
EXEC master..xp_sprintf @cmdstr OUTPUT, 'HTTP /s %s ' ,@url 
INSERT #cmd_result 
EXEC master..xp_cmdshell @cmdstr 

PRINT @cmdstr 

SELECT * FROM #cmd_result WHERE len(rtrim(output)) > 1 
DROP TABLE #cmd_result 
+0

這段代碼從哪裏來,它是如何運行的?錯誤「未被識別爲內部或外部命令...」是Windows命令行,告訴你HTTP不是要運行的程序,這是真的。你是否試圖將這個SQL運行到MS-SQL2012命令行工具中?你的逃跑地點肯定有問題。 – binaryatrocity

+0

此代碼從SQL作業運行。這在2008年效果不錯。 – user3389785

+1

是不同的服務器?聽起來像http.exe或http.bat不存在或被移動。 – Bozman

回答

0

你可以運行

EXEC master..xp_cmdshell 'dir http*' 

,看看你的HTTP是顯示出來。很有可能不是,或者需要將其添加到PATH環境變量以便從任何地方訪問它。

+0

我試過並輸出這個 – user3389785

+0

輸出 驅動器C中的卷沒有標籤。 卷序列號是7C38-885A NULL的C 目錄:\ Windows \ System32下 NULL 06/02/2012上午06時34分21271 http.mib 07/25/2012下午7時05分39,936 httpapi.dll 11/01/2012下午9點18 107520 httpprxm.dll 11/01/2012下午9點18 17920 httpprxp.dll 4文件(一個或多個)186647個字節 風向(多個)349650989056個字節自由 NULL (12行受到影響) – user3389785

+0

當我輸出命令時輸出HTTP/s「My_URL」,SQL 2012上的錯誤是'HTTP'不被識別爲內部或外部命令,可操作程序或批處理文件。但在SQL 2008中工作得非常好 – user3389785