You markup is a mess, with wrong nesting and all - that what confuses the update panel.
Remove all the table stuff - and abracadabra it works...
Use divs with CSS to layout and not table!!!
<form id="form1" runat="server">
<asp:ScriptManager ID="sManager" runat="server" />
<div>
<asp:UpdatePanel ID="UPannel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lbl" runat="server" Text="Add/Alter table"></asp:Label>
<asp:RadioButton ID="rdoAddTbl" runat="server" GroupName="Operation" Text="Add Table" AutoPostBack="true" OnCheckedChanged="RadioButton1_CheckedChanged" />
<asp:RadioButton ID="rdoAddColumn" runat="server" GroupName="Operation" Text="Add Column" AutoPostBack="true" OnCheckedChanged="RadioButton1_CheckedChanged" />
<asp:RadioButton ID="rdoDropColumn" runat="server" GroupName="Operation" Text="Drop Column" AutoPostBack="true" OnCheckedChanged="RadioButton1_CheckedChanged" />
<asp:TextBox ID="txtSql" runat="server" TextMode="MultiLine" Height="300px" Width="290px"></asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rdoAddTbl" EventName="CheckedChanged" />
<asp:AsyncPostBackTrigger ControlID="rdoAddColumn" EventName="CheckedChanged" />
<asp:AsyncPostBackTrigger ControlID="rdoDropColumn" EventName="CheckedChanged" />
</Triggers>
</asp:UpdatePanel>
</div>
</form>