in src/TriggerBinding/SqlTriggerUtils.cs [95:116]
internal static async Task<int> GetUserTableIdAsync(SqlConnection connection, SqlObject userTable, ILogger logger, CancellationToken cancellationToken)
{
string getObjectIdQuery = $"SELECT OBJECT_ID(N{userTable.QuotedFullName}, 'U');";
using (var getObjectIdCommand = new SqlCommand(getObjectIdQuery, connection))
using (SqlDataReader reader = getObjectIdCommand.ExecuteReaderWithLogging(logger))
{
if (!await reader.ReadAsync(cancellationToken))
{
throw new InvalidOperationException($"Received empty response when querying the object ID for table: '{userTable.FullName}'.");
}
object userTableId = reader.GetValue(0);
if (userTableId is DBNull)
{
throw new InvalidOperationException($"Could not find table: '{userTable.FullName}'.");
}
logger.LogDebug($"GetUserTableId TableId={userTableId}");
return (int)userTableId;
}
}