C#针对Azure SQL执行存储过程

时间:2015-11-03 18:39:49

标签: c# stored-procedures azure-sql-database

我有一个正确执行的UPDATE语句。为了清理代码,我在Azure SQL数据库中创建了一个存储过程来代替更新。但是,存储过程似乎没有执行。我的代码如下。是否有Azure限制我不知道?我忽略了什么吗? SP不会返回任何值。

using (SqlConnection VDCRootConn = new SqlConnection(VDCRootConnectionString))
{
    VDCRootConn.Open();

    SqlCommand VDCRootSqlStatement = new SqlCommand("csp_update_table_sync_ledger", VDCRootConn);

    VDCRootSqlStatement.CommandType = CommandType.StoredProcedure;
    VDCRootSqlStatement.Parameters.Add(new SqlParameter("@sourceDbName", sourceDbName));
    VDCRootSqlStatement.Parameters.Add(new SqlParameter("@sourceDbTablename", sourceDbTablename));
    VDCRootSqlStatement.Parameters.Add(new SqlParameter("@sourceTableMaxSyncedRecordId", sourceTableMaxSyncedRecordId));
    VDCRootSqlStatement.Parameters.Add(new SqlParameter("@clientId", clientId));
    VDCRootSqlStatement.Parameters.Add(new SqlParameter("@sourceTablePrimaryKeyName", sourceTablePrimaryKeyName));

    VDCRootSqlStatement.ExecuteNonQuery();
    VDCRootConn.Close();
}

更新:似乎这是AZURE SQL权限问题。我仔细检查了我的凭据和权限。只是为了分享我的思想流程..

1)我可以从SQL Manager

执行SP

2)我可以验证我有权执行'MyLoginName'

SELECT HAS_PERMS_BY_NAME('dbo.csp_update_table_sync_ledger', 'OBJECT', 'EXECUTE');

0 个答案:

没有答案