0

我的学生服务器上有一个数据库,如果我想使用 SQL 服务器 DBMS 访问数据库属性,我需要去我的大学,这很痛苦。我想知道是否可以通过在特定表上使用 SQL 来更改身份规范?我无法插入表格,因为未选择是,我希望能够在家中进行这些更改,我可以这样做吗?

我正在研究如何访问表和更改一些属性,并遇到了这样的事情:

Set IDENTITY_INSERT TableName ON

我希望能够使用 php 脚本和一些 SQL 来执行此操作,如下所示:

$query = "IDENTITY_INSERT customers ON ";

        $result = sqlsrv_query( $conn, $query, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));

        if( $result === false)
        {
            echo "Error in query preparation/execution.\n";
            die( print_r( sqlsrv_errors(), true));
        }

        else
        {
            echo'worked';
        }

这行得通吗?

这是我这样做的粗略尝试:

<?php
$serverName = "servername";
    $connectionInfo = array("UID" => "username", "PWD" => "password",      "Database"=>"database");
    $conn = sqlsrv_connect( $serverName, $connectionInfo);

    if( $conn === false ) // note the format of ‘equals’
    {
         echo "Could not connect.\n";
         die( print_r( sqlsrv_errors(), true));
    }



        $query = "SET IDENTITY_INSERT customers ON ";

        $result = sqlsrv_query( $conn, $query, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));

        if( $result === false)
        {
            echo "Error in query preparation/execution.\n";
            die( print_r( sqlsrv_errors(), true));
        }

        else
        {
            echo'worked';
        }

?>

谢谢你。

4

2 回答 2

2

IDENTITY_INSERT是正确的语法,尽管您似乎在使用中错过了SET关键字。看到这一行:

$query = "IDENTITY_INSERT customers ON ";

改成:

 $query = "SET IDENTITY_INSERT customers ON ";
于 2012-04-29T11:49:22.523 回答
1

我解决了这个问题,它当然没有设置为身份规范是的。首先,我删除了表列 customerID,并使用以下查询重新创建了它:

$query = "Alter table customers add customerID INT IDENTITY(1,1) not null";

这再次创建了该列,但将其设置为标识是。

没有你的帮助,我做不到。

谢谢你。

于 2012-04-29T12:59:23.160 回答