次のようなことを試みることができます:
1) MSSQL Server マシンにリモート デバッグ ツールをセットアップします:
http://msdn.microsoft.com/en-us//library/bt727f1t.aspx
2) MSSQL Server でリモート デバッグ モニターを実行します。マシン:
http://msdn.microsoft.com/en-us//library/xf8k2h6a.aspx
3) データベース プロジェクトを開き、次を選択します。デバッグ - プロセスにアタッチ...
4) 参照して、サーバーを選択します。
5) sqlservr.exe を選択し、アタッチ
します。これですべてだと思います。
テストに使用したコードのサンプル:
//StoredProcedure sample
public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void StoredProcedure1(string source)
{
SqlDataRecord tempRecord = new SqlDataRecord(new SqlMetaData[] { new SqlMetaData("test", SqlDbType.VarChar, 50) });
tempRecord.SetString(0, "teeeest");
SqlContext.Pipe.Send(tempRecord); // here breakpoint with source=="php" condition
}
};
//PHP code sample
<?php
$connectionInfo = array( "Database"=>"db", "UID"=>"sa", "PWD"=>"**************");
$link = sqlsrv_connect('server', $connectionInfo);
if( $link === false )
{
echo "Could not connect.\n";
die( print_r( sqlsrv_errors(), true));
}
$sql = " { call StoredProcedure1 ( ? ) } ";
$param1 = 'php';
$params = Array(
Array(&$param1, SQLSRV_PARAM_IN)
);
$stmt = sqlsrv_query($link,$sql,$params);
if ($stmt===false) {
// handle error
echo('1');
print_r(sqlsrv_errors(),true);
} else {
print_r($stmt);
sqlsrv_fetch( $stmt );
print_r(sqlsrv_get_field( $stmt, 0));
}