PDA

View Full Version : اضافه کردن خانه به جدول



ealireza
یک شنبه 28 فروردین 1384, 12:27 عصر
صسلام
اگه میشه کوییر ای برای اضافه کردن یک خانه مثلا(INT Not NULL) به یک جدول و حذف و ویرایش رو بگید

مرسی :mrgreen:

AminSobati
یک شنبه 28 فروردین 1384, 22:18 عصر
CREATE TABLE Test(
Col1 int,
Col2 int)

GO

ALTER TABLE Test
ADD Col3 int NOT NULL CONSTRAINT MyConst1 DEFAULT NULL

GO

ALTER TABLE Test
DROP CONSTRAINT MyConst1

GO

ALTER TABLE Test
ALTER COLUMN Col3 Bigint NOT NULL

GO

ALTER TABLE Test
DROP COLUMN Col3

ealireza
یک شنبه 28 فروردین 1384, 23:24 عصر
مرسی

ealireza
یک شنبه 28 فروردین 1384, 23:43 عصر
AminSobati عزیز میشه در مورد چک کرد وجود داشتن خانه یک کوییری دیگه هم بگی :mrgreen:

مثل Tabel چک بشه ببینه اگه نبود بسازه :mrgreen:

AminSobati
دوشنبه 29 فروردین 1384, 01:42 صبح
دوست عزیزم،
برای دیدن لیست تمام فیلدهای موجود در دیتابیس(به شرط اینکه کاربر فعلی دسترسی به این فیلدها داشته باشه) میتونین از این View استفاده کنین:

SELECT * FROM INFORMATION_SCHEMA.COLUMNS
پس به این شکل وجود فیلد رو چک کنین:

IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='Test' AND COLUMN_NAME='Col3')
Print 'Column Exists!'
ELSE
BEGIN
ALTER TABLE Test
ADD Col3 int NOT NULL CONSTRAINT MyConst1 DEFAULT NULL
END

اشکال این View در اینه که کاربر فقط لیست فیلدهای مجاز در اختیارش قرار میگیره. پس اگر میدونین که کاربر مثلا DBO هستش پس هیچ مشکلی نیست. اما اگر در غیر از این حالت باشه، میبایست به طور مستقیم از جدول Syscolumns گزارش بگیرین و به روش مشابه عمل کنین.
روش دوم چندان توصیه نمیشه چون در نسخه های بعدیه SQL Server ممکنه ساختار جدول Syscolumns تغییر کنه و برنامه شما دچار اشکال بشه. ولی View که ملاحظه فرمودید، در نسخه های بعدی هم توسط مایکروسافت ویرایش میشه و هیچ وقت مشکل نخواهد داشت.