2010-07-22 13 views
5

में मुझे ट्रांजैक्ट-एसक्यूएल स्क्रिप्ट प्रकार के नौकरी चरण में काम करने के लिए GETDATE() वाक्यविन्यास नहीं मिल रहा है। मैं के रूप में आदेश में डाल दिया:GETDATE() टी-एसक्यूएल जॉब स्टेप कमांड

execute insertMostRecentUpdate 
@Data='Data', 
@Date=GETDATE()-1 

लेकिन जब पार्स करने या इसे चलाने के लिए कोशिश कर रहा है मैं एक "गलत वाक्यविन्यास के पास ')'" त्रुटि मिलती है। कोई विचार?

उत्तर

7

इस प्रयास करें:

DECLARE @date DATETIME; 
SET @date = GETDATE()-1; 

execute insertMostRecentUpdate 
@Data='Data', 
@[email protected]; 

आप जबकि एक प्रक्रिया बुला इनलाइन समारोह के रूप में GETDATE() उपयोग नहीं कर सकते।

+0

फ्लोरियन के अलावा में एक समारोह से गुजर रहे हैं: सावधान रहें कि getdate() - 1 का मतलब कल नहीं है (जैसा कि गेटडेट के पास समय घटक भी है) – Tobiasopdenbrouw

+0

धन्यवाद फ़्लो! प्रति दिन कुछ नया सीखें। मैं थोड़ा नाराज हूं कि मेरे किसी भी गुगल ने इसे चालू नहीं किया :) –

+1

@ सी बाउर बहुत स्वागत है :-); और कृपया @ Tobiasopdenbrouw की बहुत महत्वपूर्ण जानकारी भी देखें। दूसरे एक्सटेंशन के रूप में: SS2k8 के साथ हम सभी को DATETIME2 और SYSDATETIME() का उपयोग शुरू करना चाहिए और DATETIME और GETDATE() से छुटकारा पाएं। –

1

आप कुछ इस तरह की कोशिश कर सकते,

declare @date date 
set @date = GETDATE()-1 

exec insertMostRecentUpdate 'data',@date 

आश्चर्य मुझे जब मैं भाग गया, सोचा था कि मैं संकलन करना चाहिए, लेकिन मुझे लगता है कि इसकी वजह से आप अपने proc

संबंधित मुद्दे