View Full Version : در مورد ALTER TABLE
Hamedm
پنج شنبه 22 دی 1384, 21:10 عصر
سلام
بنظر شما کجای دستور زیر غلطه؟
ALTER TABLE TestF
ALTER COLUMN
TestField NVARCHAR DEFAULT 0
در پناه حق موفق باشید و پرتوان
AminSobati
شنبه 24 دی 1384, 00:08 صبح
دوست عزیزم،
اشکالش اینجاست که شما یک فیلد رو Alter میکنید برای اضافه کردن یک Constraint. در حالیکه اضافه کردن Constraint نیازی به ALTER COLUMN نداره. یعنی Syntax اضافه کردن Constraint به شکلیه که فیلد مورد نظر رو مشخص میکنه:
ALTER TABLE TestF
ADD DEFAULT 0 FOR TestField
Hamedm
شنبه 24 دی 1384, 08:38 صبح
سلام
دوست عزیزم،
اشکالش اینجاست که شما یک فیلد رو Alter میکنید برای اضافه کردن یک Constraint. در حالیکه اضافه کردن Constraint نیازی به ALTER COLUMN نداره. یعنی Syntax اضافه کردن Constraint به شکلیه که فیلد مورد نظر رو مشخص میکنه:
ALTER TABLE TestF
ADD DEFAULT 0 FOR TestField
از پاسختان تشکر میکنم. شما درست میگید، من اصلا حواسم به Constraint نبود.
درضمن من میخواهم DEFAULT فیلدهای تمام دیتابیس رو تغییر بدم، این راهی که جنابعالی فرمودید برای اضافه کردن DEFAULT بود نه تغییر آنها.
در Books Online موردی رو برای تغییر پیدا نکردم. آیا باید اول تمام DEFUALT هارو پاک (DROP) کنم بعد اضافه کنم؟
در ضمن برای تغییر تمام فیلدهای دیتابیس راهی بنظرتون میرسه؟ یا مجبورم فیلدهارو تک تک تغیر بدم (کل دیتابیس حدود 400تا فیلد داره).
متنظر پاسختان هستم.
با تشکر از زحمات جنابعالی
در پناه حق موفق باشید و پرتوان
Hamedm
یک شنبه 25 دی 1384, 19:13 عصر
سلام
جناب ثباتی بی صبرانه منتظر راهنمایی تون هستم.
در پناه حق موفق باشید و پرتوان
AminSobati
دوشنبه 26 دی 1384, 00:05 صبح
حامد جان، تغییر مقدار DEFAULT تنها با DROP کردن و ساخت مجدد Constraint میسر هستش. حتی در EM وقتی مقدار Default رو تغییر میدین و Save میکنین، در حقیقت خود EM برای شما کار DROP و ساخت مجدد رو انجام میده.
برای انجام این کار روی تمام فیلدها، باید آستین ها رو بالا بزنید و با کمک Cursor و جداول سیستمی (که اطلاعات Constraintها رو برمی گردونند) یک Script بنویسید
Hamedm
دوشنبه 26 دی 1384, 07:34 صبح
حامد جان، تغییر مقدار DEFAULT تنها با DROP کردن و ساخت مجدد Constraint میسر هستش. حتی در EM وقتی مقدار Default رو تغییر میدین و Save میکنین، در حقیقت خود EM برای شما کار DROP و ساخت مجدد رو انجام میده.
برای انجام این کار روی تمام فیلدها، باید آستین ها رو بالا بزنید و با کمک Cursor و جداول سیستمی (که اطلاعات Constraintها رو برمی گردونند) یک Script بنویسید
سلام
از راهمنایی تون تشکر میکنم.
در پناه حق موفق باشید و پرتوان
alireza_CBoy
چهارشنبه 28 دی 1384, 11:59 صبح
حامد جان، تغییر مقدار DEFAULT تنها با DROP کردن و ساخت مجدد Constraint میسر هستش. حتی در EM وقتی مقدار Default رو تغییر میدین و Save میکنین، در حقیقت خود EM برای شما کار DROP و ساخت مجدد رو انجام میده.
برای انجام این کار روی تمام فیلدها، باید آستین ها رو بالا بزنید و با کمک Cursor و جداول سیستمی (که اطلاعات Constraintها رو برمی گردونند) یک Script بنویسید
من طبق Books Online دستورات زیر رو برای DROP کردن یک DEFAUL نوشتم، ولی خطا میده:
ALTER TABLE TableName
DROP CONSTRAINT DEFAULT COLUMN Field
میشه منو راهنمایی کنید؟
AminSobati
پنج شنبه 29 دی 1384, 14:38 عصر
ALTER TABLE MyTable
DROP CONSTRAINT MyConst1
alireza_CBoy
پنج شنبه 29 دی 1384, 15:03 عصر
ALTER TABLE MyTable
DROP CONSTRAINT MyConst1
آقای ثباتی من تازه با SQK Server آشنا شدم.
میشه بگید باید بجای MyConst1 چی قرار بدم؟
AminSobati
جمعه 30 دی 1384, 00:17 صبح
اگر خودتون به Constraint نام ندادین، بوسیله EXEC SP_HelpConstraint باید نام Constraint رو بدست بیارین و جایگزین کنین در دستور ALTER
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.