quinta-feira, 8 de abril de 2010

SQL: INSERT no SQL SERVER

A execução de um comando INSERT com várias linhas provoca o seguinte erro no sql server 2005:

Msg 102, Level 15, State 1, Line 4
Incorrect syntax near ','.

 

O camando executado foi o seguinte:

INSERT INTO [SPA].[dbo].[TipoRegisto](
      [ID_TipoRegisto]
      ,[DesigRegisto])
VALUES  (1,'Processo de Obras de Construção'),(2,'Alvarás Sanitários'),(3,'Licenças de Utilização')

 

A instrução com vários inserts dentro de um único comando dml descrito acima é para o SGBD mySQL.

Já no SQL Server 2005 não existe esta possibilidade. Você terá que repetir cada comando DML. O ganho de performance é grande quando utilizamos um insert dentro do outro no mySQL.
Devemos então substituír por vários inserts,

 

INSERT INTO [SPA].[dbo].[TipoRegisto](
      [ID_TipoRegisto]
      ,[DesigRegisto])
VALUES  (1,'Processo de Obras de Construção')

INSERT INTO [SPA].[dbo].[TipoRegisto](
      [ID_TipoRegisto]
      ,[DesigRegisto])
VALUES  (2,'Alvarás Sanitários')

INSERT INTO [SPA].[dbo].[TipoRegisto](
      [ID_TipoRegisto]
      ,[DesigRegisto])
VALUES  (3,'Licenças de Utilização')

 

No SQL SERVER 2008 o comando já funciona tal como no mysql.

 

PS: Não é necessário o ponto e virgula no SQL Server.

0 comentários :

Enviar um comentário