0

学生のサーバーにデータベースがあります。SQLサーバーのDBMSを使用してデータベースのプロパティにアクセスする場合は、大学に行く必要があります。これは面倒です。特定のテーブルでSQLを使用してID仕様を変更できるかどうか知りたいですか?はいが選択されていないため、テーブルに挿入できません。自宅からこれらの変更を行えるようにしたいのですが、これを行うことはできますか?

私はテーブルにアクセスしていくつかのプロパティを変更する方法を研究していて、次のようなものに出くわしました。

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";

これにより列が再度作成されましたが、IDyesに設定されています。

私はあなたの助けなしにはそれをすることができなかったでしょう。

ありがとうございました。

于 2012-04-29T12:59:23.160 に答える