2011-02-02 51 views
0

我試圖在SQL Server 數據庫AUTO_INCREMENT中創建一個現有的ID列。我無法訪問GUI。更改PDO中的SQL Server列

我正在嘗試這個查詢。

$stmt = $this->conn()->prepare('ALTER TABLE myTable ALTER COLUMN ID int NOT NULL auto_increment'); 
if($stmt->execute()){ 

}else{ 
    echo "<pre>"; 
    print_r($stmt->errorInfo()); 
    echo "</pre>"; 
} 

這提供了以下錯誤[2] => Incorrect syntax near 'auto_increment'. [20018] (severity 5) [(null)]

感謝您的幫助。

+0

我也試過「ALTER TABLE myTable ID CHANGE ID NOT NULL AUTO_INCREMENT」,但它不喜歡CHANGE – Mike 2011-02-02 21:34:33

回答

2

那麼,代碼肯定不會在SQL Server上工作,在這種情況下,您無法在創建表後爲表中添加標識功能。

即使它可能是因爲身份是您在SQL Server上使用的自動增量,它也不起作用。

您需要將標識添加爲單獨的列或執行SSMS所做的操作,並使用標識創建新表,然後移動數據,然後刪除舊錶並重命名新表。

我不能說如何在MySQL中做到這一點。

順便說一句,ID是PK領域的一個可怕的名字。請使用tablenameID。您將避免大量意外不良連接,並使報告更容易。

+0

+1 - ID是一個非常可怕的名字。 – 2011-02-02 22:26:22