1

DB のテーブルを説明する単純な PHP ページを作成しようとしています。これにより、探しているテーブル/列名またはデータ型をいつでも見つけることができます (必要に応じて、貧乏人のスキーマのようなものです)。

過去にSybase DBでこれを行ったことがありますが、新しいDBはSQL Serverになるため、そのDBを使用して再現しようとしています。

try {
  $conn = new PDO("odbc:Driver={SQL Native Client};Server=servername,1433;Database=dbname;Uid=user;Pwd=password;");
  $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); 
} catch(PDOException $e) {
  echo 'Connection failed: ' . $e->getMessage();
}

try {
  $query = $conn->query("execute sp_help tablename");
} catch(PDOException $e) {
  echo "Error: ".$e->getMessage();
}
while($result = $query->fetch(PDO::FETCH_ASSOC)) {
  print_r($result);
}

しかし、最初の結果しか得られないかのようです(ループしません)。私はここで与えられた例のようなものを期待していましたSQL Server FAQしかし、私が得たのは最初の行 (名前、所有者、タイプ、date_created) だけで、結果セットは列名などを与えません (これは私が本当に後)。

何か案は?

更新: TechNetによると、指定された引数がユーザー テーブルの場合、列を返す必要がありますが、この場合は返されません。私が得るのは...

Array ( [Name] => TableName [Owner] => dbo [Type] => user table [Created_datetime] => 2013-07-15 23:26:43.377 )
4

1 に答える 1

0

私が考えることができる唯一の方法は、sp_helpを呼び出すことができ、必要なデータを返すsybase側でプロシージャを作成することです。その手順は、必要に応じて使用できます。

于 2013-11-19T13:32:01.557 に答える