domingo, 4 de agosto de 2013

Dicas para o SQL Server

Olá galera,

No post Aplicação PHP rodando no Linux com banco de dados SQL Server no Windows, falei sobre o problema de strings acentuadas não aparecerem na aplicação. Após esse post, recebi alguns e-mails de visitantes solicitando que listasse quais os problemas que encontrei nessa aplicação.

Comentarei sobre alguns pontos para usuários que usam PostgreSQL e não possuem muita "intimidade" com SQL Server.

1º - Se utilizarmos na constraint de relacionamento o restrict, no SQL Server devemos usar o no action.

2º - No caso de scritps de inserção de dados, no SQL Server devemos utilizar o IDENTITY_INSERT.

No PostgreSQL, por exemplo, é suficiente fazermos INSERT INTO perfil VALUES (1, 'Administrador');, já no SQL Server devemos declarar as colunas explicitamente. Segue abaixo um trecho de código exemplificando.

    SET IDENTITY_INSERT perfil ON
    INSERT INTO perfil (id, nome) VALUES (1, 'Administrador');
    SET IDENTITY_INSERT perfil OFF
  

3º - As datas no SQL Server seguem o padrão YYYYmmdd sem os hífens.

4º - No SQL Server não existe o ILIKE, o LIKE já cumpre esse papel também. Para consultas com acento devemos usar o COLLATE SQL_Latin1_General_CP1_CI_AI. Segue abaixo um exemplo.

    SELECT nome FROM pessoas WHERE nome COLLATE SQL_Latin1_General_CP1_CI_AI LIKE '%Joao%'
  

5º - No update, a chave primária não pode ser atualizada como no PostgreSQL.

6º - A concatenação no SQL Server é feita através de "+" e não com "||" como no PostgreSQL.

Com certeza há vários pontos que não foram abordados. Os que citei se referem a uma aplicação que tive como experiência.

Você gostaria de compartilhar sua experiência com esse tipo de aplicação ?! Envie um comentário ou um e-mail que terei a maior satisfação em colocar sua dica no post.

Grande abraço a todos e até a próxima.

Nenhum comentário:

Postar um comentário