• As Tom suggests, temp tables seem not to work so I've created and dropped a normal table, I've posted my complete code below incase it'll help anyone else.

    USE [misc]

    GO

    /****** Object: StoredProcedure [dbo].[sp_50NewPostcodes] Script Date: 11/04/2013 10:28:34 ******/

    SET ANSI_NULLS OFF

    GO

    SET QUOTED_IDENTIFIER OFF

    GO

    Alter PROCEDURE [dbo].[sp_50NewPostcodestemp]

    AS

    IF OBJECT_ID('Results') IS NOT NULL DROP TABLE Results

    CREATE table Results(

    postcode varchar(10),streets varchar(2000))

    ;

    with cte as

    ( SELECT TOP 50 postcode,streets FROM postcodes TABLESAMPLE (0.1 percent) WITH (ROWLOCK, UPDLOCK)

    where Streets is null ORDER BY newid())

    update cte SET streets = 'Picked up'

    output inserted.*

    into Results