PDA

View Full Version : استفاده از دستور alter table



mjsqts
دوشنبه 22 آذر 1395, 19:26 عصر
سلام من میخام یک ستون رو در همه تیبل ها تغییر بدم.
مثلا ستون id رو در همه تیبل ها حذف کنم و یه ستون دیگه با نام id ولی با مشخصات دیگه اضافه کنم
دستور alter table اینکار رو میکنه

ALTER TABLE name DROP COLUMN id ;
ALTER TABLE name ADD id int identity NOT NULL;

اما باید نام هر تیبل رو حتما مشخص کنم
چطوری میتونم با این دستور در همه تیبل ها تغییر ایجاد کنم؟

mjsqts
دوشنبه 22 آذر 1395, 19:50 عصر
دست شما درد نکنه
خودم راه حلشو پیدا کردم


DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql += N'
ALTER TABLE ' +TABLE_NAME +' DROP COLUMN id ; ALTER TABLE ' + TABLE_NAME +' ADD id int identity NOT NULL;'

FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'

PRINT @sql;

این دستور ستون id رو در همه تیبل ها حذف میکنه و یه ستون جدید میسازه
گفتم شاید به کار شما هم بیاد

mjsqts
دوشنبه 22 آذر 1395, 20:15 عصر
اخرش هم یدونه ازینا اضافه کنید

EXEC sp_executesql @sql;