sábado, 12 de março de 2011

Firewall Windows 2008 Server vs SQL2008



Guia Exceptions, adicione dois serviços: sqlservr e sqlbrowser: 


1) C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe 
2) C:\Program Files\Microsoft SQL Server\MSSQL10.NOVO2008\MSSQL\Binn\sqlservr.exe 




ou mude a pasta para "C:\Program Files(x86)" 
Verifique a instância do SQLSERVER = MSSQL10.NOVO2008 para MSSQL.

quinta-feira, 10 de março de 2011

Zerar Campos de auto incremento SQLServer



--Os campos de identificação automática (Indentity Increment) do 
--SqlServer possuem um contador mantido nas tabelas do sistema,
--para alteraras mesmas deve-se utilizar o comando DBCC para auterar a mesma.
--Para zerar completamente o contador, iniciando do zero novamente:

DBCC CHECKIDENT ('NomeDaTabela', RESEED, 0) 

--Para colocar o ultimo numero utilizado: 
DBCC CHECKIDENT ('NomeDaTabela', RESEED, (select max(nome_campo) from NomeDaTabela))

terça-feira, 8 de março de 2011

COMANDO PARA RECRIAR LOGS NO SQLSERVER 2008

  
-- No exemplo temos um Banco sem o seu log no sql2008
-- arquivo ldf .. o comando abaixo recria o log e anexa o banco. 

use master 
go 
sp_attach_single_file_db 'NomeLogicoBanco', 'Caminho e nome do arquvo.mdf' 
go  

sexta-feira, 25 de fevereiro de 2011

Verificando espaço em disco e o espaço ocupado por tabelas!

  
-- No exemplo temos um Banco sem o seu log no sql2008
-- arquivo ldf .. o comando abaixo recria o log e anexa o banco. 


use master 
go 
sp_attach_single_file_db 'NomeLogicoBanco', 'Caminho e nome do arquvo .mdf' 
go 

/*
Muito interessante, foi feito por Thiago Zavaschi
Verificar o tamanho ocupado por tabelas no banco (a.k.a achar maiores tabelas):
Ordenado por quantidade de linhas:
SELECT object_name(id), rowcnt, dpages * 8 AS [tamanho KB] FROM sysindexes
WHERE indid IN (1,0) AND objectproperty(id,'isusertable') = 1
ORDER BY rowcnt DESC
Ordenado por tamanho físico:
SELECT object_name(id), rowcnt, dpages * 8 AS [tamanho KB] FROM sysindexes
WHERE indid IN (1,0) AND objectproperty(id,'isusertable') = 1
ORDER BY [tamanho KB] DESC
E para mostrar o espaço em disco disponível (valor absoluto e percentual) e o espaço total dos discos, é possível utilizar (a fonte deste script é o SQLDBATips): */
DECLARE @hr int
DECLARE @fso int
DECLARE @drive char(1)
DECLARE @odrive int
DECLARE @TotalSize varchar(20)
DECLARE @MB bigint ; SET @MB = 1048576
CREATE TABLE #drives (drive char(1) PRIMARY KEY,
                      FreeSpace int NULL,
                      TotalSize int NULL)
INSERT #drives(drive,FreeSpace)
EXEC master.dbo.xp_fixeddrives
EXEC @hr=sp_OACreate 'Scripting.FileSystemObject',@fso OUT
IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso
DECLARE dcur CURSOR LOCAL FAST_FORWARD
FOR SELECT drive from #drives
ORDER by drive
OPEN dcur
FETCH NEXT FROM dcur INTO @drive
WHILE @@FETCH_STATUS=0
BEGIN
        EXEC @hr = sp_OAMethod @fso,'GetDrive', @odrive OUT, @drive
        IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso
        EXEC @hr = sp_OAGetProperty @odrive,'TotalSize', @TotalSize OUT
        IF @hr <> 0 EXEC sp_OAGetErrorInfo @odrive
        UPDATE #drives
        SET TotalSize=@TotalSize/@MB
        WHERE drive=@drive
        FETCH NEXT FROM dcur INTO @drive
END
CLOSE dcur
DEALLOCATE dcur
EXEC @hr=sp_OADestroy @fso
IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso
SELECT drive,
       FreeSpace as 'Livre(MB)',
       TotalSize as 'Total(MB)',
       CAST((FreeSpace/(TotalSize*1.0))*100.0 as int) as 'Livre(%)'
FROM #drives
ORDER BY drive
DROP TABLE #drives
RETURN
GO
/*
A saída do script deverá ser semelhante a:
drive Livre(MB)   Total(MB)   Livre(%)
----- ----------- ----------- -----------
C     9541        49999       19
D     46002       317966      14
F     37549       99998       37
K     68581       476269      14
É isso pessoal, fazia tempo que não postava algo masi focado a área de DBA (a qual gosto muito também), espero que seja útill.
*/



spatial data: uniões e intersecções

Achei muito interessante.. extraí do site http://sqlfromhell.wordpress.com

Dê uma lida



Algumas possibilidades interessantes dos Spatial Types é a combinação de polígonos, seja por união, intersecção ou exclusão.
A forma de união mais simples é a utilização do UNION ALL do próprio T-SQL, que possibilita combinar em uma mesma visualização (no SSMS) alguns pontos ou até milhares de polígonos.



DECLARE @P1 geometry
DECLARE @P2 geometry

SET @P1 = geometry::Point(10, 10, 0).STBuffer(5)
SET @P2 = geometry::Point(15, 10, 0).STBuffer(5)

SELECT @P1
UNION ALL
SELECT @P2


Em seguida, temos a união de dois polígonos pelo método STUnion:

1 - SELECT @P1.STUnion(@P2)

Identificando a intersecção de dois polígonos pelo método STIntersection:

1 - SELECT @P1.STIntersection(@P2)

O método STDifference combina dois polígonos removendo do primeiro polígono a área do segundo polígono:

1 - SELECT @P1.STDifference(@P2)


1 - SELECT @P2.STDifference(@P1)

E por fim, o método STSymDifference que combina dos polígonos removendo destes a área de intersecção:

1 - SELECT @P1.STSymDifference(@P2)

quarta-feira, 9 de fevereiro de 2011

SQLServer CTE


Achei muito interessante... e pode ser muito útil em algum momento
 para um de nos que trabalhamos com Tabelas temporária, tanto para
 virar dados(pivot).. trata-se do CTE (Common Table Expression) é um
 novo recurso fornecido pela Microsoft SQL Server 2005. No mundo real,
 que muitas vezes precisam de consulta de dados hierárquica do banco de
 dados. Por exemplo, para obter uma lista de lista hierárquica de todos
 os funcionários, a lista de categorias de produtos, etc CTE cumpre este
 requisito fazendo uma consulta recursiva.

Gostei muito desse exemplo, copie/cole e rode:
-------------------------------------------------------------------------- 
DECLARE @Mes INT ,@Ano INT
SELECT @Mes = 10 ,@Ano = 2010;

WITH CTE (Data) AS
(
SELECT DATEADD(year, @Ano - 1900, DATEADD(month, @Mes - 1, 0))
UNION ALL
SELECT Data+1
FROM CTE
WHERE MONTH(Data + 1) = @Mes
)

SELECT
[1] AS [Domingo]
, [2] AS [Segunda-Feira]
, [3] AS [Terça-Feira]
, [4] AS [Quarta-Feira]
, [5] AS [Quinta-Feira]
, [6] AS [Sexta-Feira]
, [7] AS [Sábado]
FROM (
SELECT DAY(Data) AS Dia, 
DATEPART(weekday, Data) DiaSemana, 
DATEPART(week, Data) Semana
FROM CTE
) AS Datas
PIVOT
(
MAX(Dia) FOR DiaSemana
IN ([1], [2], [3], [4], [5], [6], [7]) ) AS A
--select * from CTE

domingo, 6 de fevereiro de 2011

Calcular HASH de Arquivos TISS XML..

Calcula o HASH de um aquivo XML TISS, Troca o HASH dentro do arquivo e renomeia ele... AI Está o link .. CLIQUE AQUI