2009-11-23 80 views
0
ALTER TABLE Physician 
Modify (RefLastName nvarchar(500), 
RefFirstName nvarchar(500)); 

獲得不正確的語法錯誤......這個查詢有什麼錯誤?

+0

你到底用這個來完成?我不知道你使用的是什麼版本,但我不認爲修改是一個有效的選項,請參閱http://msdn.microsoft.com/en-us/library/ms190273.aspx – StevenWilkins 2009-11-23 20:53:12

回答

1

您是要添加列或改變大小?

您可能會先嚐試查找BOL中的alter table,然後再返回這裏,如果這沒有幫助。

3

您使用ALTER TABLE的方式與CREATE TABLE不同。您提到對錶格元素的更改,而不是從頭開始指定所有列。像:

ALTER TABLE TableName 
ADD LastName NVARCHAR(100) NOT NULL 
0

你的語法錯誤是什麼?

我看着http://www.techonthenet.com/sql/tables/alter_table.php

與也許嘗試:

ALTER TABLE Physician 
Modify (RefLastName varchar2(500), 
     RefFirstName varchar2(500)); 
+0

看起來像oracle語法...他沒有指定服務器類型 – Broam 2009-11-23 20:53:45

+0

實際上,我沒有問題直接在MSSMS中使用ALTER TABLE和Alter column statment更新列大小。但我想用c#代碼(SqlCommand)更新多列。 – Jango 2009-11-23 21:07:49

1

我不知道你想做什麼。你在改變尺寸嗎?如果是這樣,這就夠了:

ALTER TABLE Physician ALTER COLUMN RefLastName nvarchar(500)

GO

ALTER TABLE Physician ALTER COLUMN RefLastName nvarchar(500)

GO

(您可能需要強制重建索引的。)

+0

是的我正在嘗試使用SqlCommand從c#代碼更改列大小。 – Jango 2009-11-23 20:59:25

+0

奧克。我的問題是我使用C#代碼更新列大小。如果我使用上面的語句沒有去統計,SqlCommand(cmd.ExuecteNonQuery)更新列大小,但返回-1。如果我使用Go Statment,它會在'Go'附近提供錯誤的語法。我不知道你是否可以幫助我使用C#代碼。如果你想我也可以粘貼我的C#代碼。 – Jango 2009-11-23 21:03:49

+0

ExecuteNonQuery可以返回-1。這很正常。從MSDN:「對於UPDATE,INSERT和DELETE語句,返回值是受命令影響的行數[...]對於所有其他類型的語句,返回值爲-1。」 – 2009-11-23 21:14:26