ورود

View Full Version : SELECT after ALTER TABLE



Mohsen_4194
یک شنبه 22 آذر 1383, 22:30 عصر
CREATE TABLE ATable
( Field1 int PRIMARY KEY
Field2 int
)

ALTER TABLE ATable ADD
Field3 int IDENTITY(1,1)

SELECT *
FROM ATable
WHERE Field3 = 1
چطور میشه مشکل این کد رو حل کرد
البته منظورم یه راه ساده است
ضمناْ ALTER و SELECT باید تو یکSession باشند.

hmm
دوشنبه 23 آذر 1383, 07:48 صبح
بعد از هر دستور از کلمه go استفاده کنید

Mohsen_4194
دوشنبه 23 آذر 1383, 20:06 عصر
ضمناْ ALTER و SELECT باید تو یکSession باشند.
شاید بهتر باشه بگم تو یک Batch باشند.

hmm
سه شنبه 24 آذر 1383, 07:35 صبح
توی یه batch هستند دیگه


CREATE TABLE ATable
( Field1 int PRIMARY KEY
Field2 int
)

go

ALTER TABLE ATable ADD
Field3 int IDENTITY(1,1)

go

SELECT *
FROM ATable
WHERE Field3 = 1

AminSobati
پنج شنبه 26 آذر 1383, 20:41 عصر
دوست عزیزم hmm،
البته دستور فوق در سه Batch نوشته شده. هر دستور GO انتهای Batch رو نشون میده. Batchها خصوصیات خودشون رو دارند. مثلا تمام دستورات در یک Batch به طور همزمان به Query Processor فرستاده میشن و وجود مثلا خطای Syntax در یکی از دستورات، باعث لغو اجرا برای کل Bacth میشه ولی روی Batchهای دیگه تاثیر نمیگذاره. مثلا:

Dummy_command_to_generate_error!

select * from northwind..customers
اینجا سطر دوم اجرا نمیشه چون سطر اول باعث بروز خطای Syntax میشه و کل Batch از اجرا باز میمونه. اما اگر اونها رو جدا کنیم، داستان فرق میکنه:

Dummy_command_to_generate_error!
go
select * from northwind..customers
الان اگر چه خطا نمایش داده میشه، اما Select انجام میشه.
موفق باشین

hmm
شنبه 28 آذر 1383, 07:26 صبح
ممنون از راهنمایی شما :thnx:

AminSobati
پنج شنبه 03 دی 1383, 23:23 عصر
موفق باشین :)