First off, cool article
I'm also using SQL 2000, so instead of using sys.views I use:
IF object_id('Digits') is not null drop view Digits
Here is a way to print the Sudoko table using SQL 2000. You need to change the options in query analyzer to not print column headers and set the output format to "space delimited".
select '*','-','-','-','-','-','-','-','-','-','-','-','*'
union all
select --rowId
'|'
,max(case columnId when 1 then isnull(cast(cellValue as char(1)),'.') end)
,max(case columnId when 2 then isnull(cast(cellValue as char(1)),'.') end)
,max(case columnId when 3 then isnull(cast(cellValue as char(1)),'.') end)
,'|'
,max(case columnId when 4 then isnull(cast(cellValue as char(1)),'.') end)
,max(case columnId when 5 then isnull(cast(cellValue as char(1)),'.') end)
,max(case columnId when 6 then isnull(cast(cellValue as char(1)),'.') end)
,'|'
,max(case columnId when 7 then isnull(cast(cellValue as char(1)),'.') end)
,max(case columnId when 8 then isnull(cast(cellValue as char(1)),'.') end)
,max(case columnId when 9 then isnull(cast(cellValue as char(1)),'.') end)
,'|'
from sudoko
where rowId 6
group by RowId
union all
select '*','-','-','-','-','-','-','-','-','-','-','-','*'