title: Update count column from data in another table
body: <p>In my DB I have two tables Items(Id, ..., ToatlViews int) and ItemViews (id, ItemId, Timestamp)</p>
  
  <p>In ItemViews table I store all views of an item as they come to the site. From time to time I want to call a stored procedure to update Items.ToatlViews field. I tried to do this SP using a cursor ... but the update statement is wrong. Can you help me to correct it? Can I do this without cursor?</p>
  
  <pre><code>CREATE PROCEDURE UpdateItemsViews
  AS
  BEGIN
      -- SET NOCOUNT ON added to prevent extra result sets from
      -- interfering with SELECT statements.
      SET NOCOUNT ON;
  
      DECLARE @currentItemId int
      DECLARE @currentItemCursor CURSOR
      SET @currentItemCursor = CURSOR FOR SELECT Id FROM dbo.Items
  
      OPEN @currentItemCursor
      FETCH NEXT FROM @currentItemCursor INTO @currentItemId
      WHILE @@FETCH_STATUS = 0
      BEGIN
          Update dbo.Items set TotalViews = count(*) 
                from dbo.ItemViews where ItemId=@currentItemId
          FETCH NEXT FROM @currentItemCursor INTO @currentItemId
      END   
  END
  GO
  </code></pre>