1
假設以下是我的查詢。SQLCMD - SQL Server作業
DECLARE @INT INT
SET @INT = (SELECT COUNT(1) FROM MyTable)
IF (@INT = 0)
RAISERROR('Fail',16,1)
我想使用此查詢並使用「操作系統(CmdExec)」類型創建SQL Server作業。 如果@INT <> 0,我想要SQL作業步驟成功,如果@INT = 0,則失敗。
如何編寫cmd?
我的嘗試(它不起作用)...服務器是不同於我將設置工作的地方。
sqlcmd -S 123.45.67.890 -E -V15 -d MyDB -Q "DECLARE @INT INT
SET @INT = (SELECT COUNT(1) FROM MyTable)
IF (@INT = 0)
RAISERROR('Fail',16,1)" -b
作業失敗消息。
作爲用戶執行:LocalSVR \ USER。消息105,級別15,狀態1,服務器RemoteSVR,行1未在字符串'DECLARE @INT INT'後面加上引號。處理退出代碼15.該步驟失敗。
請注意,當MyTable有1+條記錄時,該步驟因相同原因失敗。
更新:根據斯科特的建議,我改變了格式(刪除換行符),它似乎工作。 @Scott,不知道如何將你的評論標記爲答案。如果您可以寫回復,我會將其標記爲答案。乾杯!!!
那是究竟如何它按照以下格式你的工作? Sqlcmd可能不喜歡讓您的查詢跨越多行。如果您刪除換行符,它可能會工作。 – 2014-11-03 21:11:08
嗯......哇!認爲這是它.. ..謝謝@ScottTeibert這個提示。乾杯! – 007 2014-11-03 21:15:14