Or you could use a table with all possible values.
Here's an example on how to create it.
CREATE TABLE Weeks(
WeekCode int,
FisrtDay date,
LastDay date
);
WITH
E(n) AS(
SELECT n FROM (VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0))E(n)
),
E2(n) AS(
SELECT a.n FROM E a, E b
),
E4(n) AS(
SELECT a.n FROM E2 a, E2 b
),
cteTally(n) AS(
SELECT TOP 3000 DATEADD( wk, ROW_NUMBER() OVER(ORDER BY (SELECT NULL))-1, '19950102') n
FROM E4
)
INSERT INTO Weeks
SELECT (YEAR(n) * 100) + DATEPART(ISOWK, n) WeekCode,
n AS firstday,
n + 7 AS lastday
FROM cteTally;