ورود

View Full Version : یک فیلد که فقط عدد بگیره



paladin
پنج شنبه 03 شهریور 1390, 03:09 صبح
می خواستم بدونم چه جوری میشه یه فیلد ساخت که متن باشه (nvarchar) ولی فقط عدد بگیره .فکر کنم با تریگر و" انواع داده تعریف شده توسط کاربر" بشه ولی نمی دونم چه جوری .کسی راهی بلده؟

pashna
پنج شنبه 03 شهریور 1390, 22:28 عصر
سلام
من فکر نمیکنم سوال سخت باشه ولی عجیب هست. خوب چرا int نمیگیری؟
نگهداریش خیلی راحت تره، در ضمن هرچی لاجیک (logic ) سمت SQL کمتر باشه که بهتره. به هرحال برای مثال یه نگاهی به این بنداز :

DECLARE
@Input NVARCHAR(50)
DECLARE

@Int NVARCHAR(50)

SET

@Input ='3489'

IF

@Input <>PATINDEX('%abcdefghigklmnopqrstuvwxyz%', @Input)
SET @Int = @Input
ELSE

SELECT

@Int

اگر @Input رو غیر از عدد بدی قبول نمیکنه.

oliya24
پنج شنبه 03 شهریور 1390, 22:41 عصر
دوست عزیز در مورد logic میشه توضیح بدید که چیه؟؟؟

paladin
پنج شنبه 03 شهریور 1390, 23:12 عصر
ممنون از پاسختون . از int نمی شه استفاده کرد چون فیلد من سمت چپش صفر داره.فقط قسمت آخرش نمی فهمم چه میشه! در ضمن این یه تریگره ؟

pashna
پنج شنبه 03 شهریور 1390, 23:27 عصر
مثلا:


CREATE

FUNCTION Fnc( @Input NVARCHAR(50))

RETURNS

INT

AS




BEGIN


DECLARE @Int NVARCHAR(50)


IF @Input <>PATINDEX('%abcdefghigklmnopqrstuvwxyz%', @Input)


SET @Int = @Input


RETURN @Input


END

اینو میتونید استفاده کنید.