How do you get it to play a sound effect from a trigger? (2D, C#)

I can’t for the life of me figure out how to do this. In my game, your character touches the ham, and it increments your score and despawns the ham. I want it to also play a sound effect for when you touch the ham, and I just can’t figure out how to do this. Can someone please help me? This is my first game and nothing has been as big of a roadblock as this. I have an audio source but I am not sure what to put into it.
This is what I have for code.

using UnityEngine;
using System.Collections;

public class HamScript : MonoBehaviour {
public int score;
// Use this for initialization
void Awake ()
{

}

// Update is called once per frame
void OnTriggerEnter2D (Collider2D other) 
{
	if (other.tag == "Player") 
	{
		ScoreScript.score += 200;
		Destroy (transform.root.gameObject);
		Debug.Log (ScoreScript.score);
		audio.Play ();
	}
}

}

This is what many tutorials have said to do, but it does not work for me. Its a 2D sound too.

I think Reder13 is probably right and that you are destroying the gameobject that is actually trying to play the sound. An easy to fix it is to make another script and attach it to a different object in the scene to act as your audio manager. E.G:

//note that this is sudo code and might not compile
class AudioManager: MonoBehaviour
{
public static AudioManager Instance;//being staic lets you call this from anywhere

public AudioSource hamSound;//this is your ham sound. Remember to link it in the editor

void Start()
{
Instance = this;//this is very important!
}
}

Then you can do something like this in your code and it wont matter if the object is destroyed:

 void OnTriggerEnter2D (Collider2D other)
{
if (other.tag == "Player")
{
ScoreScript.score += 200;
Destroy (transform.root.gameObject);
Debug.Log (ScoreScript.score);
//audio.Play ();
AudioManager.Instance.hamSound.Play();
}
}