Please try the following solution.
I made it a little bit more sophisticated. First token is considered as a first name, anything else is a last name.
SQL
-- DDL and sample data population, start
DECLARE @tbl TABLE (ID INT IDENTITY PRIMARY KEY, FullName varchar(200));
INSERT INTO @tbl (FullName) VALUES
('Jason Jones'),
('Mark Smith'),
('Liza Burkovski Smith'),
('Ted');
-- DDL and sample data population, end
DECLARE @separator CHAR(1) = SPACE(1);
;WITH rs AS
(
SELECT *
, TRY_CAST('<root><r>' +
REPLACE(FullName, @separator, '</r><r>') +
'</r></root>' AS XML) AS xmldata
FROM @tbl
)
SELECT ID, rs.FullName
, rs.xmldata.value('(/root/r[1]/text())[1]', 'VARCHAR(30)') AS firstName
, rs.xmldata.query('data(/root/r[position() gt 1]/text())').value('.' , 'VARCHAR(100)') AS lastName
FROM rs;
Output
+----+----------------------+-----------+-----------------+
| ID | FullName | firstName | lastName |
+----+----------------------+-----------+-----------------+
| 1 | Jason Jones | Jason | Jones |
| 2 | Mark Smith | Mark | Smith |
| 3 | Liza Burkovski Smith | Liza | Burkovski Smith |
| 4 | Ted | Ted | |
+----+----------------------+-----------+-----------------+