ورود

View Full Version : سوال: اضافه كردن فيلد به جدولي كه خود 20 فيلد دارد با Query



ali_abbasi22145
شنبه 21 اردیبهشت 1387, 10:38 صبح
سلام
من يك جدول cardtable با 20 فيلد دارم كه مي خواهم با Query مثلا در SQL Query Analyzer به جدول فوق فيلدهاي Date به شكل datetimeو فيلد fathername به شكل ( varchar(40,.. اضافه كنم.

Kamyar.Kimiyabeigi
شنبه 21 اردیبهشت 1387, 11:18 صبح
ALTER TABLE carddb
ADD [Date] DATETIME NULL,
fathername VARCHAR(40) NULL

ali_abbasi22145
شنبه 21 اردیبهشت 1387, 12:11 عصر
مرسي دوست عزيز
حال اگر (title VARCHAR(80 داريم كه 90% با اطلاعات پر شده و بخواهيم تبديل كنيم به (title VARCHAR(120
و اطلاعاتش تغيير نكند! آنوقت كدش چه مي شود؟

Kamyar.Kimiyabeigi
شنبه 21 اردیبهشت 1387, 12:40 عصر
به صورت مستقیم نمیتونین چنین کاری رو انجام بدین مگه اینکه شبیه سازی کنین


ALTER TABLE TABLE1
ADD COLUMN TITLE1 VARCHAR(80) NULL

UPDATE TABLE1
SET TITLE1 = TITLE

ALTER TABLE TABLE1
DROP COLUMN TITLE

ALTER TABLE TABLE1
ADD COLUMN TITLE VARCHAR(120) NULL

UPDATE TABLE1
SET TITLE = TITLE1

ALTER TABLE TABLE1
DROP COLUMN TITLE1

ali_abbasi22145
شنبه 21 اردیبهشت 1387, 14:50 عصر
سلام
كد شما خطا زير را مي دهد البته TITLE1 را به cardtable خودم تغيير دادم:

------------------------------------------------------------------
Server: Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'COLUMN'.
Server: Msg 156, Level 15, State 1, Line 11
Incorrect syntax near the keyword 'COLUMN'.
---------------------------------------------------------------------

ALTER TABLE cardtable
ADD COLUMN TITLE1 VARCHAR(80) NULL

UPDATE cardtable
SET TITLE1 = TITLE

ALTER TABLE cardtable
DROP COLUMN TITLE

ALTER TABLE cardtable
ADD COLUMN TITLE VARCHAR(120) NULL

UPDATE cardtable
SET TITLE = TITLE1

ALTER TABLE cardtable
DROP COLUMN TITLE1

ali_abbasi22145
یک شنبه 22 اردیبهشت 1387, 12:38 عصر
سلام
كسي از دوستان نمي تواند مشكل را حل كند؟

Kamyar.Kimiyabeigi
یک شنبه 22 اردیبهشت 1387, 14:36 عصر
ALTER TABLE TABLE1
ADD TITLE1 VARCHAR(80) NULL
GO

UPDATE TABLE1
SET TITLE1 = TITLE
GO

ALTER TABLE TABLE1
DROP COLUMN TITLE
GO

ALTER TABLE TABLE1
ADD TITLE VARCHAR(120) NULL
GO

UPDATE TABLE1
SET TITLE = TITLE1
GO

ALTER TABLE TABLE1
DROP COLUMN TITLE1
GO

ali_abbasi22145
دوشنبه 23 اردیبهشت 1387, 10:47 صبح
سلام وتشكر بي پايان
كد شما كاملا درست كار كرد!
1- اما سوال اينجاست كه در پايان بعضي از كدها GO مي گذارند و بعضي ندارد تفاوت چيست؟

2-حال اگر چك كنيم اگرفيلد title ما (title VARCHAR(120 است ، كاري نكند و اگر (title VARCHAR(120 نيست ، بخواهيم تبديل كنيم به (title VARCHAR(120
آنوقت كدش چه مي شود؟ (ببخشيد كه ديگه ول نمي كنيم! چون برنامه ام را update كردم و فيلد كم و زياد كردم و مي خواهم با Query جدولش را به راحتي جديد كنم)
__________________