Tablo değerli işlev çağrısı için varsayılan anahtar sözcük nasıl iletilir? Veritabanımızda, okuyucumuzun güvenlik ve modülerlik amaçları için, tablo değerli fonksiyonlardaki çoğulları (örneğin, seçilmiş ifadeler) sarıyoruz. Bu yüzden bir veya daha fazla isteğe bağlı parametreyi tanımlayan bir TVF var. Ben temerrüde parametrelerle bir TVF sahip inanıyoruzADO.NET
anahtar kelime default
kullanımını zorunlu kılan şöyle TVF çağrılırken:
select * from fn_SampleTVF(123, DEFAULT, DEFAULT)
, her şey sorgu analizörü çalışır, ama aslında zamanı geldiğinde Bu isteği ADO.NET'ten yapmak, aslında default
sözcüğünü işlenen sql'e koyan bir sql parametresi nasıl oluşturacağımı bilmiyorum.
String qry = "select * from fn_SampleTVF(@requiredParam, @optionalParam)";
DbCommand command = this.CreateStoreCommand(qry, CommandType.Text);
SqlParameter someRequiredParam = new SqlParameter("@requiredParam", SqlDbType.Int);
someRequiredParam.Value = 123;
command.Parameters.Add(someRequiredParam);
SqlParameter optionalParam = new SqlParameter("@optionalParam", SqlDbType.Int);
optionalParam.Value = >>>> WTF? <<<<
command.Parameters.Add(optionalParam);
Yani, herkes herhangi bir fikir nasıl TVF için default
geçmek var:
Şimdi kabaca böyle bir şey var?
En çözüm varsayılan maddeleri kullanarak kaçınmaktır TVF parametresi tanımı, Kevin'in önerdiği gibi boş değerlere geçme ve TVF gövdesinde varsayılan ayarları manuel olarak oluşturma. İşte bulduğum bir yazı (Sprocs ile ilgili, fakat sorun aynı). Microsoft ile ilişkili tüm diğer şeyler gibi http://social.msdn.microsoft.com/Forums/en/sqldataaccess/thread/3825fe1c-7b7e-4642-826b-ea024804f807 , bu bir buçuk içerecektir işe alma -bakmış geçici çözüm. – Mason