title: Unable to change my custom type in sql server
body: <p>I have a custom type that I create by using the following:</p>
  
  <pre><code>IF EXISTS (SELECT * FROM sys.types WHERE is_table_type = 1 AND name = 'LineItemType')
  BEGIN
      DROP TYPE dbo.LineItemType
  END
  GO
  
  CREATE TYPE dbo.LineItemType
  AS TABLE
  (
    Id UNIQUEIDENTIFIER,
    Invoice_Id UNIQUEIDENTIFIER,
    Cost INT,
    Quantity INT,
    Total INT,
    [Description] NVARCHAR(250) 
  );
  GO
  </code></pre>
  
  <p>This type is used as a parameter of one of my stored procedures like this:</p>
  
  <pre><code>IF EXISTS (SELECT 1 FROM sys.procedures WHERE name = 'AddSomething' AND SCHEMA_NAME(schema_id) = 'dbo')
  BEGIN
      DROP PROCEDURE dbo.AddSomething
  END
  GO
  
  CREATE PROCEDURE AddSomething
      ...
      @LineItems AS dbo.LineItemType READONLY
  
  AS
  BEGIN 
      ...
  </code></pre>
  
  <p>My problem is I have since decided to add some columns to my type, I updated my script above adding the column, and expected it to simply drop and re-create when I ran it but instead I got this error:</p>
  
  <blockquote>
    <p>Msg 3732, Level 16, State 1, Line 4 Cannot drop type
    'dbo.LineItemType' because it is being referenced by object
    'AddSomething'. There may be other objects that reference this type.
    Msg 219, Level 16, State 1, Line 8 The type 'dbo.LineItemType' already
    exists, or you do not have permission to create it.</p>
  </blockquote>
  
  <p>What am I missing? How can I drop my type and recreate it at any time?</p>
  
  <p>Thanks.</p>