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
اینو میتونید استفاده کنید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.