Mysql 在PDO中更改SQL Server列

Mysql 在PDO中更改SQL Server列,mysql,sql-server,pdo,Mysql,Sql Server,Pdo,我正在尝试在SQL Server中创建现有的ID列 数据库自动增量。我没有访问GUI的权限 我正在尝试这个问题 $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(

我正在尝试在SQL Server中创建现有的ID列 数据库自动增量。我没有访问GUI的权限

我正在尝试这个问题

$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>";
}
$stmt=$this->conn()->prepare('ALTER TABLE myTable ALTER COLUMN ID int NOT NULL auto_increment');
如果($stmt->execute()){
}否则{
回声“;
打印($stmt->errorInfo());
回声“;
}
这会导致以下错误
[2]=>在“自动增量”附近出现不正确的语法。[20018](严重程度5)[(空)]


感谢您的帮助。

在SQL Server上,如果您无法在创建表后更改表以向字段添加标识功能,那么该代码肯定无法工作

即使可以,它也不会工作,因为标识是您在SQL Server上使用的,而不是自动增量

您需要将标识添加为单独的列,或者执行SSMS所做的操作,并使用标识创建一个新表,移动数据,然后删除旧表并重命名新表

我不知道如何在mysql中实现它


顺便说一句,ID是PK字段的可怕名称。请使用tablenameID。您将避免许多意外的错误连接,并使报告更容易

我还尝试了“ALTER TABLE myTable CHANGE ID INT NOT NULL AUTO_INCREMENT”,但它不喜欢更改谢谢您的输入,似乎使用SQL Server有点麻烦。@mike,对于某些事情(包括这件事)是的,对于其他事情,不,大多数情况下,它只是习惯了一些你所知道的其他东西不起作用的东西。