PDA

View Full Version : مشکل در تغییر فیلد جدول به not allow null بعد از وارد کردن اطلاعات



firoozi90
چهارشنبه 23 بهمن 1392, 14:15 عصر
سلام دوستان
من یه مشکل دارم
یک جدول دارم که داخلش چندین رکورد ثبت شده حالا می خوام از توی SQL یکی از فیلدهارو دارای خاصیت is not allow کنم که نتونه خالی رها بشه،حالا هنگامی که این تیکو از فیلد بر میدارم با وجودی که جدولم ذخیره می کنم اما به راحتی می تونم این فیلد رو خالی رها کنم
به نظرتون مشکل از کجاست؟

mohammadreza110
چهارشنبه 23 بهمن 1392, 14:59 عصر
به خاطر اینه که یه اروری یهت میده که شما نمیتوانید این کار رو انجام دهید و تغیراتی را که انجام میدی رو ذخیره نمیکنه . برای این کار تا اونجایی که من میدونم باید جدول رو پاک کنی و بعد دوباره تغیراتت رو اعمال کنی. البته اطلاعات من اینو میگه و ...

aroshanzamir
چهارشنبه 23 بهمن 1392, 15:00 عصر
Create Table Student
(
ID INT Primary Key Identity(1,1),
Name Nvarchar(50) NUll,
Family Nvarchar(50) NOT NULL
)
مثلا در دستور بالا فیلد نام می تواند خالی باشد اما فیلد فامیل نمی تواند خالی باشد

.. تست شده ...

محمد کلهر
پنج شنبه 24 بهمن 1392, 02:37 صبح
مطمئنی تغییرات ذخیره می شه؟

Reza_Yarahmadi
جمعه 25 بهمن 1392, 11:06 صبح
اگه از سمت برنامه ای که نوشتید اطلاعات اضافه میکنید ؛ احتمالا محتوای یه textbox رو اضافه میکنید؛ اگه اینطوریه که مقدار خالی textbox با null یکی نیست و از سمت برنامه باید خالی بودن textbox رو چک کنید.

firoozi90
یک شنبه 27 بهمن 1392, 08:36 صبح
به خاطر اینه که یه اروری یهت میده که شما نمیتوانید این کار رو انجام دهید و تغیراتی را که انجام میدی رو ذخیره نمیکنه . برای این کار تا اونجایی که من میدونم باید جدول رو پاک کنی و بعد دوباره تغیراتت رو اعمال کنی. البته اطلاعات من اینو میگه و ...
نه فدات این مشکلو ندارم
در ضمن برای ذخیره تغییرات در جدول نیازی نیست که جدولت پاک کنی

firoozi90
یک شنبه 27 بهمن 1392, 08:37 صبح
Create Table Student
(
ID INT Primary Key Identity(1,1),
Name Nvarchar(50) NUll,
Family Nvarchar(50) NOT NULL
)
مثلا در دستور بالا فیلد نام می تواند خالی باشد اما فیلد فامیل نمی تواند خالی باشد

.. تست شده ...

این جواب سوال من نیست،این مسائل پیش پا افتاده است،لطفا سوالمو به دقت بخونید

firoozi90
یک شنبه 27 بهمن 1392, 08:38 صبح
مطمئنی تغییرات ذخیره می شه؟
بله تغییرات ذخیره میشه

firoozi90
یک شنبه 27 بهمن 1392, 08:41 صبح
اگه از سمت برنامه ای که نوشتید اطلاعات اضافه میکنید ؛ احتمالا محتوای یه textbox رو اضافه میکنید؛ اگه اینطوریه که مقدار خالی textbox با null یکی نیست و از سمت برنامه باید خالی بودن textbox رو چک کنید.
سلام
چه از سمت برنامه و چه از سمت SQL هردو یک جوابو می دادند،من احتمال می دم که NULL نگه نمی داره، شاید یه Space نگه داره این فیلد،آخه این جدولو خودم طراحی نکردم،و داخلش چند هزار رکورد ذخیره شده،
اگر space ذخیره کنه یا هرچیزی غیر از NULL بهترین روش برای جلوگیری از ورود اطلاعات خالی چیه؟بدون اینکه به ساختار جدول دست بزنیم

Reza_Yarahmadi
یک شنبه 27 بهمن 1392, 17:13 عصر
چه از سمت برنامه و چه از سمت SQL هردو یک جوابو می دادند،من احتمال می دم که NULL نگه نمی داره، شاید یه Space نگه داره این فیلد،آخه این جدولو خودم طراحی نکردم،و داخلش چند هزار رکورد ذخیره شده،
از سمت SQL یعنی دستوری مثل دستور زیر هم رکورد ایجاد میکنه؟
Insert Into YourTable(YourField) Values (NULL)
اگه با این دستور هم رکورد ایجاد میکنه به احتمال زیاد Default Value برای فیلد مورد نظرتون تعیین شده - این موضوع رو چک کنید.

اگر space ذخیره کنه یا هرچیزی غیر از NULL بهترین روش برای جلوگیری از ورود اطلاعات خالی چیه؟بدون اینکه به ساختار جدول دست بزنیم
1- از سمت برنامه معتبر بودن داده ها رو چک کنید
2- توی SP ذخیره سازی، قبل از Insert اعتبار سنجی کنید.

m.fazlali
یک شنبه 27 بهمن 1392, 17:24 عصر
در ابتدا اطمینان پیدا کن که این فیلد داری Default value or Binding نباشد
واگر حدس میزنی که space ذخیره میکند و نمیتوانی آنرا از سمت کلاینت کنترل کنی بهتر است یک Check constraint برای آن تعریف کنی که space را کنترل مینماید واز کنترل داخل sp پرهیز کن زیرا ممکن است از مکان های دیگر نیز insert انجام پذیرد حتی در آینده .

firoozi90
دوشنبه 28 بهمن 1392, 08:37 صبح
در ابتدا اطمینان پیدا کن که این فیلد داری Default value or Binding نباشد
واگر حدس میزنی که space ذخیره میکند و نمیتوانی آنرا از سمت کلاینت کنترل کنی بهتر است یک Check constraint برای آن تعریف کنی که space را کنترل مینماید واز کنترل داخل sp پرهیز کن زیرا ممکن است از مکان های دیگر نیز insert انجام پذیرد حتی در آینده .
ممنون از توجهت
Check constraint هنگامی که رکورد ذخیره شده قابل اعماله؟
البته منظورم رکوردهایی که این فیلد خالی رها شده اند