IF NOT EXISTS(SELECT * FROM Clock WHERE clockDate = '08/10/2012') AND userName = 'test')
Имеет дополнительную скобку. Я думаю, что это нормально, если вы удалите его:
IF NOT EXISTS(SELECT * FROM Clock WHERE clockDate = '08/10/2012' AND userName = 'test')
Кроме того, GETDATE () поместит текущую дату в столбец, хотя, если вы не хотите времени, вам придется немного поиграть , Я думаю, что CONVERT (varchar (8), GETDATE (), 112) даст вам только дату (не время).
IF NOT EXISTS(SELECT * FROM Clock WHERE clockDate = CONVERT(varchar(8), GETDATE(), 112) AND userName = 'test')
, вероятно, это сделает.
PS : используйте инструкцию merge :)