SORU
22 Ocak 2009, PERŞEMBE


Varsayılan parametre değeri olarak işlev SQL?

Önce bu soruldu ise özür dilerim. Ben hızlı bir arama yaptım ve ilgili bir şey bulamadık.

İşte benim senaryo. Bunu yapmak için çalıştım:

ALTER PROCEDURE [dbo].[my_sp]
@currentDate datetime = GETDATE()

Tüm SQL ön-derleyici bana geri verir bu hata: Msg 102, Level 15, State 1, Yordam my_sp, Satır 8 Yakınında yanlış sözdizimi ('.'

Zaten prosedür oluşturduk. Null varsayılan değeri kullanarak ve daha sonra, onun için bakıyordum ama uygun görünmüyor. Bir satır içinde bunu yapabilir miyim?

GÜNCELLEME: Öncelikle hızlı cevaplar için hepinize teşekkür ederim. Kutsal inek! Saklı yordam parametreleri buradan MSDN açıklamasını ben geliyordum ikinci: http://msdn.microsoft.com/en-us/library/ms186755.aspx

[ = default ] Varsayılan değer parametre için. Eğer varsayılan değer tanımlanmış ise, fonksiyon Bu parametre için bir değer belirterek olmadan çalıştırılır.

Not:< / ^ br . Varsayılan parametre değerleri ikilik(max) ve varbinary(max) veri türleri için CLR işlevleri dışında belirtilebilir.

Fonksiyonu parametre varsayılan değeri varsa, anahtar kelime VARSAYILAN işlevi Varsayılan değerini almak için çağrıldığında belirtilmelidir. Bu davranış, atlama parametre de varsayılan değer anlaşılacağı saklı yordamları varsayılan değerleri ile parametrelerini kullanarak farklıdır.

Bunu okuyun yanlış yaptım? Çok teşekkürler.

GÜNCELLEME 2: yorum iki cevap yazdı. Eğer buraya gitmek konusunda emin değil.

CEVAP
22 Ocak 2009, PERŞEMBE


Saklı yordamları için varsayılan değer parametre olmak zorundasabitler. Aşağıdaki... yapmak gerekir

ALTER Procedure [dbo].[my_sp]
@currentDate datetime = null
AS
IF @currentDate is null
SET @currentDate = getdate()

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 3biblecom

    3biblecom

    23 NİSAN 2011
  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007
  • SaMmM123

    SaMmM123

    3 Mayıs 2006