See http://www.sqlservercentral.com/articles/Tally+Table/72993/[/url]
to get the code and explanation for use of the DelimitedSplit8K function.
;WITH SampleData (ID,PartNumber)
AS
(
SELECT 1,'BR643-0034-344-34' UNION ALL
SELECT 2,'AS54-54689' UNION ALL
SELECT 3,'A77360-3454-34456-4' UNION ALL
SELECT 4,'B7374-343-33-32-356-433-11-1'
)
SELECT
r.PartNumber
,LEFT(r.PartNumber,LEN(r.PartNumber)-LEN(r.Item)-1) AS NewPartNumber
FROM
(
SELECT
ID
,PartNumber
,ItemNumber
,Item
,(MAX(ItemNumber) OVER (PARTITION BY PartNumber)) AS MaxItem
FROM
SampleData AS s
CROSS APPLY
dbo.DelimitedSplit8K(s.PartNumber,'-') AS dsk
) r
WHERE
r.ItemNumber = r.MaxItem
ORDER BY
r.ID