martes, 5 de septiembre de 2017

Obtener Transacciones abiertas - SQL Server

Open Transactions in SQLServer



SELECT
trans.session_id AS [SESSION ID],
ESes.host_name AS [HOST NAME],login_name AS [Login NAME],
trans.transaction_id AS [TRANSACTION ID],
tas.name AS [TRANSACTION NAME],tas.transaction_begin_time AS [TRANSACTION BEGIN TIME],
tds.database_id AS [DATABASE ID],DBs.name AS [DATABASE NAME]
FROM sys.dm_tran_active_transactions tas
JOIN sys.dm_tran_session_transactions trans
ON (trans.transaction_id=tas.transaction_id)
LEFT OUTER JOIN sys.dm_tran_database_transactions tds
ON (tas.transaction_id = tds.transaction_id )
LEFT OUTER JOIN sys.databases AS DBs
ON tds.database_id = DBs.database_id
LEFT OUTER JOIN sys.dm_exec_sessions AS ESes
ON trans.session_id = ESes.session_id
WHERE ESes.session_id IS NOT NULL



martes, 12 de agosto de 2014

error HRESULT: 0×80070057 (E_INVALIDARG) [SOLVED]



If your computer dies or crashes during shadow-copy stage of .net framework files, you’re in trouble. The specific error is “Exception from HRESULT: 0×80070057 (E_INVALIDARG)”.










To fix it, you need to get rid of the files that were corrupted during the interrupted file copy:
  • Find the .NET framework complilation folder (in my case it was: “C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files”)
  • You also might find it on Framework64, or another version (v2, v3) folders... that haves temporary ASP.NET files.
  • Delete all folders other than “root”
  • Open up the “root” folder and delete all subfolders
  • Pull your website up in the browser
  • It should compile successfully and load the website.





Thanks to:
http://www.abdinoor.com/2007/08/16/net-website-compilation-error-hresult-0x80070057-e_invalidarg/

martes, 10 de diciembre de 2013

sqlserver REINDEX and UPDATESTATS


Para reindexar y actualizar estadisticas de sql server



USE MyDatabase
GO
EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', ' ', 80)"
GO
EXEC sp_updatestats
GO

domingo, 24 de noviembre de 2013

Paginado en SqlServer

Segun vi en muchos foros, la mejor forma de paginar es la siguiente:


SELECT  *
FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY OrderDate ) AS RowNum, *
          FROM      Orders
          WHERE     OrderDate >= '1980-01-01'
        ) AS RowConstrainedResult
WHERE   RowNum >= 1
    AND RowNum < 20
ORDER BY RowNum

viernes, 17 de mayo de 2013

Try catch en sql server (con transacciones)

Una buena idea para ejecutar consultas que podrian tirar error y automaticamente revertirlas en caso de que fallen (generalmente usado cuando estan dentro de un bucle) es utilizar un TRY CATCH en SQL.

La forma de utilizarlo va como el siguiente ejemplo:


BEGIN TRAN

BEGIN TRY

--EJECUCION CON POSIBLE ERROR
Print '> Se hace una ejecucion'

--CUANDO TERMINE DE EJECUTAR TODO:

COMMIT TRAN

END TRY

BEGIN CATCH

ROLLBACK TRAN

END CATCH


Espero que les sea util.
Slds.

viernes, 12 de abril de 2013

Como conocer las conexiones abiertas a SqlServer


Si llegado al caso tienen la necesidad de conocer cuales son las conexiones abiertas hacia un SQLSERVER, pueden obtener informacion de estas 3 maneras:

(Siempre desde Sql Management Studio)


Ejecutar:

EXEC SP_WHO 

Devuelve un listado simple de todas las conexiones y su estado actual.


EXEC SP_WHO2

Devuelve un listado completo de todas las conexiones y su estado actual.



Y mi preferido, si necesitan conocer cual base de datos se esta llevando mas conexiones, pueden ejecutar este query:


SELECT 
    DB_NAME(dbid) [Database]
    , COUNT(dbid) Connections
    , loginame as Username
    
FROM sys.sysprocesses
WHERE dbid > 0
GROUP BY dbid, loginame
ORDER BY Connections desc
   


Espero que les sirva.

Saludos.