ورود

View Full Version : حذف فاصله های اضافی از فیلدهای nVarChar



Davood_amega
سه شنبه 19 مرداد 1389, 11:10 صبح
بنده در برنامه ام حدودا 60 تا Table دارم که هر کدام اینها هم چند فیلد nvarchar دارند .
حالا می خواهم در SQL اگر فاصله اضافی اول و آخر رشته آمد حذف شود .
قاعده اش اینه که در Insert و Update از توابع استفاده کنم اما همونجوری که بهتر از من می دونید سرعت را هم باید در نظر بگیریم که صددرصد کاهش پیدا می کند .
سوالاتم :
1- آیا خصوصیتی در SQL برای این کار تعبیه نشده است ؟ در غیر اینصورت تابع را به چه صورتی بنویسم ؟
2- این کار را در Visual Studio انجام دهم یا SQL؟


ضمنا از SQL Server 2008 و ( Visual Studio 2010 ( WPF استفاده می کنم .

ahmad_eagle2002
سه شنبه 19 مرداد 1389, 11:42 صبح
lشما مي تونيد با استفاده از توابع LTrim , RTrim اين كار را انجام بدهيد
فيلد هاي مورد نياز خودتون را update كنيد

UPDATE [Table_name]
SET [field1] = LTrim(RTrim(field1))

Davood_amega
سه شنبه 19 مرداد 1389, 13:31 عصر
ممنون دوست عزیز اما مشکلم این نیست که نتوانم Trim را انجام دهم .فکر کردم که شاید در Sql Server 2008 همچنین خصوصیتی داشته باشیم که خودش همچنین کاری انجام دهد.

pezhvakco
سه شنبه 19 مرداد 1389, 13:39 عصر
درود :

قاعده اش اینه که در Insert و Update از توابع استفاده کنم اما همونجوری که بهتر از من می دونید سرعت را هم باید در نظر بگیریم که صددرصد کاهش پیدا می کند .
شما به قائده پیش برین خیلی بهتر تا اینکه بعد از انجام کار (مقدار داده ها زیاد شده ) این کار رو انجام بدی.

مگه یه چک کردن فضای خالی در هنگام اضافه کردن داده چقدر زمان میبره که انجام ندی و بعد بیای اون ها رو ویرایش کنی .

ستون های که از این نوع (nvarchar) تعریف می شوند تا جای ممکن خودشان فضای خالی انتها رو حذف می کنند .

فکر خوش .

حمیدرضاصادقیان
سه شنبه 19 مرداد 1389, 15:28 عصر
سلام.تازه به جای اون شما میتونید وقتی میخواهید مقادیر رو از کاربر بگیرید در لایه GUI که همون ظاهر برنامه تون میشه این کنترل رو انجام بدین و دیتا رو بدون Space به sql server اضافه کنید که نخواهید کار اضافی روی سرور انجام بدید./
موفق باشید