Tens uma data de erros no código.
1º nunca se criam campos do tipo varchar sem defenir o seu tamanho (a tabela cuidados_especiais_saude tem exemplos disso).
2º nunca se criam campos como chave primária do tipo varchar, têm de ser sempre do tipo int (na tabela cargo o campo nomecargo é do tipo varchar).
3º nunca se criam tabelas sem chaves primárias (a tabela de Pagamentos não tem chave primária).
4º quando crias uma ligação entre duas tabelas os campos que se relacionam têm de ser do mesmo tipo e não de tipos diferentes (na tabela funcionario o campo cargo é do tipo varchar(20) e na tabela cargo é do tipo varchar).
5º os nomes do campos das tabelas que se relacionam têm ter o mesmo nome.
A tabela codmat não tem nenhuma relação.
Aqui está o script com a solução, cria as tabelas pelo ordem que está, basta correres os script todo que ele cria as tabelas e as relações entre elas.
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK__funcionar__cargo__76619304]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[funcionario] DROP CONSTRAINT FK__funcionar__cargo__76619304
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK__pagamento__cargo__73852659]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[pagamentos] DROP CONSTRAINT FK__pagamento__cargo__73852659
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_crianca_cuidados_especiais_saude]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[crianca] DROP CONSTRAINT FK_crianca_cuidados_especiais_saude
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_crianca_enceducacao]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[crianca] DROP CONSTRAINT FK_crianca_enceducacao
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_crianca_escalao]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[crianca] DROP CONSTRAINT FK_crianca_escalao
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_crianca_tutor]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[crianca] DROP CONSTRAINT FK_crianca_tutor
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_crianca_funcionario]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[crianca] DROP CONSTRAINT FK_crianca_funcionario
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK__sala__educador_r__793DFFAF]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[sala] DROP CONSTRAINT FK__sala__educador_r__793DFFAF
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[crianca]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[crianca]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sala]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[sala]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[funcionario]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[funcionario]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[pagamentos]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[pagamentos]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[cargo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[cargo]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[cuidados_especiais_saude]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[cuidados_especiais_saude]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[enceducacao]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[enceducacao]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[escalao]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[escalao]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[stock_material]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[stock_material]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tutor]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tutor]
GO
CREATE TABLE [dbo].[cargo] (
[nomecargo] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[salario] [money] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[cuidados_especiais_saude] (
[codsaude] [numeric](18, 0) NOT NULL ,
[nome] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[codcrianca] [numeric](18, 0) NULL ,
[descricao_problema] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[enceducacao] (
[codenc] [numeric](18, 0) NOT NULL ,
[nome] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[sexo] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[morada] [varchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[telefone] [numeric](9, 0) NULL ,
[telemovel] [numeric](9, 0) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[escalao] (
[tipo_escalao] [numeric](18, 0) NOT NULL ,
[custo] [money] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[stock_material] (
[codmat] [numeric](18, 0) NOT NULL ,
[nome] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[quantidade] [numeric](18, 0) NULL ,
[descricao] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[tutor] (
[codtutor] [numeric](18, 0) NOT NULL ,
[nome] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[sexo] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[morada] [varchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[telefone] [numeric](9, 0) NULL ,
[telemovel] [numeric](9, 0) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[funcionario] (
[codfuncionario] [numeric](18, 0) NOT NULL ,
[nome] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[datanascimento] [datetime] NULL ,
[sexo] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[morada] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[telefone] [numeric](9, 0) NULL ,
[telemovel] [numeric](9, 0) NULL ,
[cargo] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[NIB] [numeric](18, 0) NULL ,
[sala] [numeric](18, 0) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[pagamentos] (
[valor] [money] NULL ,
[cargo] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[mes] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[codfuncionario] [numeric](18, 0) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[crianca] (
[codcrianca] [numeric](18, 0) NOT NULL ,
[nome] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[datanascimento] [datetime] NULL ,
[sexo] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[morada] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[telefone] [numeric](9, 0) NULL ,
[telemovel] [numeric](9, 0) NULL ,
[codenc] [numeric](18, 0) NULL ,
[codtutor] [numeric](18, 0) NULL ,
[escalao] [numeric](18, 0) NULL ,
[codfuncionario] [numeric](18, 0) NULL ,
[codsaude] [numeric](18, 0) NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[sala] (
[numsala] [numeric](18, 0) NOT NULL ,
[capacidade] [numeric](18, 0) NULL ,
[educador_responsavel] [numeric](18, 0) NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[cargo] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[nomecargo]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[cuidados_especiais_saude] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[codsaude]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[enceducacao] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[codenc]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[escalao] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[tipo_escalao]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[stock_material] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[codmat]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[tutor] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[codtutor]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[funcionario] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[codfuncionario]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[crianca] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[codcrianca]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[sala] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[numsala]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[funcionario] ADD
FOREIGN KEY
(
[cargo]
) REFERENCES [dbo].[cargo] (
[nomecargo]
)
GO
ALTER TABLE [dbo].[pagamentos] ADD
FOREIGN KEY
(
[cargo]
) REFERENCES [dbo].[cargo] (
[nomecargo]
)
GO
ALTER TABLE [dbo].[crianca] ADD
CONSTRAINT [FK_crianca_cuidados_especiais_saude] FOREIGN KEY
(
[codsaude]
) REFERENCES [dbo].[cuidados_especiais_saude] (
[codsaude]
),
CONSTRAINT [FK_crianca_enceducacao] FOREIGN KEY
(
[codenc]
) REFERENCES [dbo].[enceducacao] (
[codenc]
),
CONSTRAINT [FK_crianca_escalao] FOREIGN KEY
(
[escalao]
) REFERENCES [dbo].[escalao] (
[tipo_escalao]
),
CONSTRAINT [FK_crianca_funcionario] FOREIGN KEY
(
[codfuncionario]
) REFERENCES [dbo].[funcionario] (
[codfuncionario]
),
CONSTRAINT [FK_crianca_tutor] FOREIGN KEY
(
[codtutor]
) REFERENCES [dbo].[tutor] (
[codtutor]
)
GO
ALTER TABLE [dbo].[sala] ADD
FOREIGN KEY
(
[educador_responsavel]
) REFERENCES [dbo].[funcionario] (
[codfuncionario]
)
GO