¿Cómo saber si existe una tabla en nuestra BD? Podemos crear y usar la sig función.
Para mandar llamar la funcion
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[existeTabla]
(
@cTableName VARCHAR(255)
)
RETURNS BIT
AS
BEGIN
DECLARE @nReturn BIT
SET @nReturn = 0
IF (SELECT COUNT(*) FROM SYS.OBJECTS
WHERE TYPE = 'U' AND UPPER(NAME) = UPPER(@cTableName)) > 0 BEGIN
SET @nReturn = 1
END
RETURN @nReturn
END
Para mandar llamar la funcion podemos usar el siguiente query:
SELECT [dbo].[existeTabla] ('TABLA_A_BUSCAR')
Si el resultado es 1 la tabla existe, en caso contrario no existe.
miércoles, 28 de marzo de 2012
viernes, 16 de marzo de 2012
Crear Indices en Tablas Temporales
Para crear indices en tablas temporales, se puede utilizar el siguiente código.
CREATE TABLE #t1 (a int, b int)
GO
CREATE CLUSTERED INDEX Idx1 ON #t1(b)
CREATE UNIQUE NONCLUSTERED INDEX Idx2 ON #t1(a)
GO
INSERT INTO #t1 VALUES ('1', '0')
GO
DROP TABLE #t1
Nota: En Variables Tabla no se pueden crear índices.
CREATE TABLE #t1 (a int, b int)
GO
CREATE CLUSTERED INDEX Idx1 ON #t1(b)
CREATE UNIQUE NONCLUSTERED INDEX Idx2 ON #t1(a)
GO
INSERT INTO #t1 VALUES ('1', '0')
GO
DROP TABLE #t1
Nota: En Variables Tabla no se pueden crear índices.
jueves, 8 de marzo de 2012
Buscar una Cadena de Texto en SPs y Funciones
Muchas veces pasa que cambiamos el nombre a alguna tabla, sp, función, etc. Y luego no sabemos en que códigos tenemos ese objeto que modificamos. Para poder sacar donde tenemos ese objeto modificado podemos ejecutar el siguiente query.
SELECT (SELECT TOP 1 NAME FROM sys.schemas WHERE schema_id = ALL_OBJECTS.schema_id) AS ESQUEMA, *
FROM SYS.ALL_OBJECTS
WHERE OBJECT_ID IN (SELECT ID FROM syscomments WHERE CTEXT LIKE '%Objeto_a_buscar%')
ORDER BY SCHEMA_ID
Donde Objeto_a_buscar es la tabla, sp o funcion que deseamos buscar.
Salu2
SELECT (SELECT TOP 1 NAME FROM sys.schemas WHERE schema_id = ALL_OBJECTS.schema_id) AS ESQUEMA, *
FROM SYS.ALL_OBJECTS
WHERE OBJECT_ID IN (SELECT ID FROM syscomments WHERE CTEXT LIKE '%Objeto_a_buscar%')
ORDER BY SCHEMA_ID
Donde Objeto_a_buscar es la tabla, sp o funcion que deseamos buscar.
Salu2
lunes, 5 de marzo de 2012
Reindexar BD en SQL Server
Script para todas las tablas de una BD de SQL Server ...
DECLARE @cTableName VARCHAR(MAX)
SET NOCOUNT ON;
DECLARE Cur_Tablas CURSOR LOCAL FORWARD_ONLY FOR
SELECT ESQUEMAS.NAME + '.' + TABLAS.NAME AS TABLA
FROM SYS.OBJECTS TABLAS
,SYS.SCHEMAS ESQUEMAS
WHERE TABLAS.TYPE = 'U'
AND ESQUEMAS.SCHEMA_ID = TABLAS.SCHEMA_ID
ORDER BY ESQUEMAS.NAME, TABLAS.NAME
OPEN Cur_Tablas
FETCH Cur_Tablas INTO @cTableName
WHILE (@@FETCH_STATUS = 0)
BEGIN
BEGIN TRY
EXEC ('DBCC DBREINDEX ("' + @cTableName + '"," ", 70)')
PRINT @cTableName
END TRY
BEGIN CATCH
PRINT ERROR_MESSAGE()
END CATCH
FETCH Cur_Tablas INTO @cTableName
END -- Fin del bucle WHILE
CLOSE Cur_Tablas
DEALLOCATE Cur_Tablas
DECLARE @cTableName VARCHAR(MAX)
SET NOCOUNT ON;
DECLARE Cur_Tablas CURSOR LOCAL FORWARD_ONLY FOR
SELECT ESQUEMAS.NAME + '.' + TABLAS.NAME AS TABLA
FROM SYS.OBJECTS TABLAS
,SYS.SCHEMAS ESQUEMAS
WHERE TABLAS.TYPE = 'U'
AND ESQUEMAS.SCHEMA_ID = TABLAS.SCHEMA_ID
ORDER BY ESQUEMAS.NAME, TABLAS.NAME
OPEN Cur_Tablas
FETCH Cur_Tablas INTO @cTableName
WHILE (@@FETCH_STATUS = 0)
BEGIN
BEGIN TRY
EXEC ('DBCC DBREINDEX ("' + @cTableName + '"," ", 70)')
PRINT @cTableName
END TRY
BEGIN CATCH
PRINT ERROR_MESSAGE()
END CATCH
FETCH Cur_Tablas INTO @cTableName
END -- Fin del bucle WHILE
CLOSE Cur_Tablas
DEALLOCATE Cur_Tablas
jueves, 1 de marzo de 2012
Respaldos en SQL Server
Sp para realizar respaldos.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[usp_Backup]
AS
BEGIN
declare @cPrefijo varchar(10), @cRutaBak varchar(250)
select @cPrefijo ='BD_', @cRutaBak ='C:\Backups\'
declare @cNameBak varchar(80), @cNameResp varchar(80)
select @cNameBak = @cPrefijo+dbo.dtos(getdate())+'-'+replace(str(datepart(hh,getdate()),2)+str(datepart(mi,getdate()),2),' ','0')+'.BAK'
select @cNameResp = @cRutaBak + @cNameBak
BACKUP DATABASE [BD] TO DISK = @cNameResp
WITH COMPRESSION, NOFORMAT, NOINIT,
NAME = N'BD-Full Database Backup',
SKIP, NOREWIND, NOUNLOAD, STATS = 10
END
Para mandarlo llamar:
EXECUTE [dbo].[usp_Backup]
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[usp_Backup]
AS
BEGIN
declare @cPrefijo varchar(10), @cRutaBak varchar(250)
select @cPrefijo ='BD_', @cRutaBak ='C:\Backups\'
declare @cNameBak varchar(80), @cNameResp varchar(80)
select @cNameBak = @cPrefijo+dbo.dtos(getdate())+'-'+replace(str(datepart(hh,getdate()),2)+str(datepart(mi,getdate()),2),' ','0')+'.BAK'
select @cNameResp = @cRutaBak + @cNameBak
BACKUP DATABASE [BD] TO DISK = @cNameResp
WITH COMPRESSION, NOFORMAT, NOINIT,
NAME = N'BD-Full Database Backup',
SKIP, NOREWIND, NOUNLOAD, STATS = 10
END
Para mandarlo llamar:
EXECUTE [dbo].[usp_Backup]
Liberar Memoria en SQL Server
Sp para Liberar Memoria sin necesidad de reiniciar el Servicio ...
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[usp_LiberarMem]
AS
BEGIN
EXEC sp_configure 'show advanced options', 1;
--GO
EXEC sys.sp_configure N'max server memory (MB)', N'1024'
--GO
RECONFIGURE WITH OVERRIDE
--GO
CHECKPOINT
--GO
WAITFOR DELAY '00:00:30'
EXEC sp_configure 'show advanced options', 1;
--GO
EXEC sys.sp_configure N'max server memory (MB)', N'8192'
--GO
RECONFIGURE WITH OVERRIDE
--GO
END
Para ejecutarlo:
EXECUTE [dbo].[usp_LiberarMem]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[usp_LiberarMem]
AS
BEGIN
EXEC sp_configure 'show advanced options', 1;
--GO
EXEC sys.sp_configure N'max server memory (MB)', N'1024'
--GO
RECONFIGURE WITH OVERRIDE
--GO
CHECKPOINT
--GO
WAITFOR DELAY '00:00:30'
EXEC sp_configure 'show advanced options', 1;
--GO
EXEC sys.sp_configure N'max server memory (MB)', N'8192'
--GO
RECONFIGURE WITH OVERRIDE
--GO
END
Para ejecutarlo:
EXECUTE [dbo].[usp_LiberarMem]
lunes, 16 de enero de 2012
Un Mediodía Triste
“Un mediodía triste, viendo el lomo gris del metro
aplanando la banqueta,
mientras derrite el asfalto un sol blanco y voraz”.
“Pasan los delfines como almas en pena,
consortes de la muerte que se sube al mundo sin pagar boleto.
El viento aúlla canciones flacas.
Gente hay una peste, como esperando a Cristo.
Cristo está sentado seguramente
en la tercera fila de un burlesque”.
Hay un bar pequeño,
con la esquina verde,
afuera dormita un organillero.
Tiene espesas cejas
y babea alcohol:
lo cubre la sombra de un ángel bluesero.
Poco movimiento,
es temprana hora.
La ciudad no muestra su cara granosa,
supurante y roja,
sus pelos al pecho,
ni su carne floja.
“La tarde se sienta en el centro viejo,
se baja las medias corridas y sucias,
menea sus pestañas de mujer nocturna
y deja caer la noche al abrir las piernas”.
“Podrías morir de una enfermedad que usa placa y corriente eléctrica,
o sumergido en una plácida niebla de opio,
o montado en las cálidas carnes de una mujer fenicia.
Podrías morir un día cualquiera,
la hora poco importa,
¡son tiempos obscuros,
escucha atento a las sirenas!”.
De una madriguera
surge la pandilla,
por usar espuelas todos son buscados.
Como la marea
de un mar iracundo,
van cubriendo tramos de calles ajenas.
Embarran los muros
de pintura roja;
hay una emoción que fricciona el aire.
Aún no crecen flores en el pavimento.
La ciudad se ha vuelto una novia amarga.
Tengo tres preguntas,
responda el primero:
¿quién mató la noche?,
¿quién abrió la puerta?,
¿descifró este sueño
y se ocultó en el alba?
José Cruz Camargo
aplanando la banqueta,
mientras derrite el asfalto un sol blanco y voraz”.
“Pasan los delfines como almas en pena,
consortes de la muerte que se sube al mundo sin pagar boleto.
El viento aúlla canciones flacas.
Gente hay una peste, como esperando a Cristo.
Cristo está sentado seguramente
en la tercera fila de un burlesque”.
Hay un bar pequeño,
con la esquina verde,
afuera dormita un organillero.
Tiene espesas cejas
y babea alcohol:
lo cubre la sombra de un ángel bluesero.
Poco movimiento,
es temprana hora.
La ciudad no muestra su cara granosa,
supurante y roja,
sus pelos al pecho,
ni su carne floja.
“La tarde se sienta en el centro viejo,
se baja las medias corridas y sucias,
menea sus pestañas de mujer nocturna
y deja caer la noche al abrir las piernas”.
“Podrías morir de una enfermedad que usa placa y corriente eléctrica,
o sumergido en una plácida niebla de opio,
o montado en las cálidas carnes de una mujer fenicia.
Podrías morir un día cualquiera,
la hora poco importa,
¡son tiempos obscuros,
escucha atento a las sirenas!”.
De una madriguera
surge la pandilla,
por usar espuelas todos son buscados.
Como la marea
de un mar iracundo,
van cubriendo tramos de calles ajenas.
Embarran los muros
de pintura roja;
hay una emoción que fricciona el aire.
Aún no crecen flores en el pavimento.
La ciudad se ha vuelto una novia amarga.
Tengo tres preguntas,
responda el primero:
¿quién mató la noche?,
¿quién abrió la puerta?,
¿descifró este sueño
y se ocultó en el alba?
José Cruz Camargo
Suscribirse a:
Entradas (Atom)