title: Can't drop procedure if object_id is not null
body: <p>I have a weird problem. I'm trying to drop a procedure only if it exists, and have this code: </p>
  
  <pre><code>IF OBJECT_ID(N'dbo.CreateBlogUser', N'U') IS NOT NULL
      DROP PROCEDURE CreateBlogUser;
      PRINT 'IS NOT NULL'
  GO
  </code></pre>
  
  <p>(the print is only there to try if it is true or not).
  And when I run it, "IS NOT NULL" is printed, but the procedure isn't dropped! It still exists in the database, so when I run my Create procedure, it fails. </p>
  
  <p>However! When I tried to remove the NOT from the code, it works! The procedure is dropped and "IS NOT NULL" is still printed. This seems totally backwards and I don't know why it does this. Is is something to do with the extra N:s and U:s in the OBJECT_ID? Found the code <a href="http://msdn.microsoft.com/en-us/library/ms190328.aspx" rel="nofollow">here</a></p>