segunda-feira, 31 de maio de 2010

Trabalhando com campos datetime

Como separar a data da hora de um campo datetime?
Segue:

Declare @date datetime
Set @date = getdate()
Select Convert (CHAR(10),@date,103) As Data, CONVERT(CHAR(5),@date,108) AS HORA

Resultado:




E para remover a hora de um campo datetime?

Declare @date datetime
Set @date = getdate()
Select Cast(floor(cast(@date as float)) as datetime) as data

Resultado:

quinta-feira, 27 de maio de 2010

Como listar um campo de forma aleatória no SQL ?

Certa vez precisei criar códigos de forma aleatória e uma boa opção foi usar o seguinte comando:

SELECT (CAMPO)
FROM TABELA
ORDER BY NEWID()


Ex: SELECT COD_ALUNO FROM ALUNO ORDER BY NEWID()

Comando para listar procedures do banco de dados

O seguinte comando lista as procedures, a data de criação e a data da última alteração:

SELECT SPECIFIC_NAME, LAST_ALTERED,CREATED
FROM INFORMATION_SCHEMA.ROUTINES
WHERE SPECIFIC_SCHEMA = 'DBO'
ORDER BY LAST_ALTERED DESC

Como resetar campos auto incremento no SQL Server

Muitas vezes quando um banco de dados é criado, antes de finalizar o projeto, é necessário testar se os dados estão sendo armazenados corretamente e então são realizados vários testes.
Se um campo de uma tabela for definido como auto incremento, depois dos testes finalizados os dados possivelmente serão excluídos e pode haver a necessidade de zerar esse campo auto incremento.
No SQL Server utiliza-se o seguinte comando:


DBCC CHECKIDENT ('nome da tabela', RESEED, 0)

Onde 0 é o valor inicial -1. Sendo assim, para que o registro comece do 1 deve-se setar o valor para 0. Para começar do 5, o valor deve ser setado para 4.