Well if you do not want your index to be unique, remove the 'UNIQUE' keyword.
If you add a constraint to be unique, that contraint will cause a violation if you attempt to insert identical values.
Where you can do is to avoid the duplicates in the select statements inserting the data. You should add an index if you want quick access to rows based on the values in the index only.
For instance like this:
INSERT INTO DATAUPLOAD(DATE, TIME, BREMPROCODE, BREMPRONAME, PRICE)
(SELECT DISTINCTROW DATE, TIME BREMPROCODE, BREMPRONAME, PRICE FROM ACMEDATASOURCETABLE)
in the case of hourly insertions where you could have the value already present, you need to use for instance an outer join also:
INSERT INTO DATAUPLOAD(DATE, TIME, BREMPROCODE, BREMPRONAME, PRICE)
(SELECT DISTINCTROW DATE, TIME BREMPROCODE, BREMPRONAME, PRICE FROM ACMEDATASOURCETABLE A LEFT JOIN DATAUPLOAD B ON A.DATE = B.DATE AND A.TIME = B.TIME AND A.BREMPROCODE = B.BREMPROCODE AND A.BREMPRONAME = B.BREMPRONAME AND A.PRICE = B.PRICE WHERE B.BREMPROCODE IS NULL)
If cause this is not an overly effective way to do this, but it's pretty simple, that last B.BREMPROCODE could of cause be any field, just checking that joining the values back at the table to insert into produces an empty value indication.
Se more exaples of outer joins here:
https://technet.microsoft.com/en-us/library/ms187518(v=sql.105).aspx[
^]