The quick and easy way to
copy the structure and data within a table is to use
SELECT * INTO [new_table_name] FROM [source_table]
Within an application, what I would do is to create the new table with a date(time) naming convention so that you can see when it was backed-up.
private void CreateBackupStock() {
string NewTableName = string.Format("Stock_bak_{0}", DateTime.Now.ToString("yyyymmdd"));
string NewCommand = string.Format("SELECT * INTO {0} FROM [Stock]", NewTableName);
using (SqlConnection conn = new SqlConnection([ConnectionString])) {
SqlCommand cmd = new SqlCommand(NewCommand, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
cmd.Dispose();
}
}