2011-02-02 48 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