using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test.Be.Garra
{
public class Garae004Be
{
public string Usuario { get; set; }
public int Terminal { get; set; }
public Single Canal { get; set; }
}
}
lunes, 5 de octubre de 2015
domingo, 27 de septiembre de 2015
SQL - Trigger Update
/*Tanto para INSERT y UPDATE la tabla usada en los TRIGGER es INSERTED. para los delete es DELETED*/
USE [Gestion]
GO
/****** Object: Trigger [dbo].[upd_requerimientos] Script Date: 27/09/2015 12:02:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Create Trigger (New Menu).SQL
ALTER TRIGGER [dbo].[upd_requerimientos] ON [dbo].[REQUERIMIENTO]
AFTER UPDATE
AS
BEGIN
DECLARE @id_requerimiento INT
,@id_archivo INT
SELECT @id_requerimiento = ID_REQUERIMIENTO
,@id_archivo = ID_ARCHIVO
FROM inserted
UPDATE Gestion..REL_REQUERIMIENTO_ARCHIVO
SET ID_ARCHIVO = @id_archivo
WHERE ID_REQUERIMIENTO = @id_requerimiento
END
/************************************************************************/
/*TABLAS AFECTADAS PARA TENER UNA IDEA*/
CREATE TABLE [dbo].[REQUERIMIENTO](
[ID_REQUERIMIENTO] [int] IDENTITY(1,1) NOT NULL,
[ID_PROYECTO] [int] NULL,
[NOMBRE_REQUERIMIENTO] [varchar](max) NULL,
[DESCRIPCION_REQUERIMIIENTO] [varchar](max) NULL,
[TIPO_REQUERIMIENTO] [varchar](50) NULL,
[ESTADO] [tinyint] NULL,
[ID_ARCHIVO] [int] NULL,
CONSTRAINT [PK_REQUERIMIENTO] PRIMARY KEY CLUSTERED
(
[ID_REQUERIMIENTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
CREATE TABLE [dbo].[REL_REQUERIMIENTO_ARCHIVO](
[ID] [int] IDENTITY(1,1) NOT NULL,
[ID_REQUERIMIENTO] [int] NULL,
[ID_ARCHIVO] [int] NULL,
CONSTRAINT [PK_REL_REQUERIMIENTO_ARCHIVO] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
USE [Gestion]
GO
/****** Object: Trigger [dbo].[upd_requerimientos] Script Date: 27/09/2015 12:02:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Create Trigger (New Menu).SQL
ALTER TRIGGER [dbo].[upd_requerimientos] ON [dbo].[REQUERIMIENTO]
AFTER UPDATE
AS
BEGIN
DECLARE @id_requerimiento INT
,@id_archivo INT
SELECT @id_requerimiento = ID_REQUERIMIENTO
,@id_archivo = ID_ARCHIVO
FROM inserted
UPDATE Gestion..REL_REQUERIMIENTO_ARCHIVO
SET ID_ARCHIVO = @id_archivo
WHERE ID_REQUERIMIENTO = @id_requerimiento
END
/************************************************************************/
/*TABLAS AFECTADAS PARA TENER UNA IDEA*/
CREATE TABLE [dbo].[REQUERIMIENTO](
[ID_REQUERIMIENTO] [int] IDENTITY(1,1) NOT NULL,
[ID_PROYECTO] [int] NULL,
[NOMBRE_REQUERIMIENTO] [varchar](max) NULL,
[DESCRIPCION_REQUERIMIIENTO] [varchar](max) NULL,
[TIPO_REQUERIMIENTO] [varchar](50) NULL,
[ESTADO] [tinyint] NULL,
[ID_ARCHIVO] [int] NULL,
CONSTRAINT [PK_REQUERIMIENTO] PRIMARY KEY CLUSTERED
(
[ID_REQUERIMIENTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
CREATE TABLE [dbo].[REL_REQUERIMIENTO_ARCHIVO](
[ID] [int] IDENTITY(1,1) NOT NULL,
[ID_REQUERIMIENTO] [int] NULL,
[ID_ARCHIVO] [int] NULL,
CONSTRAINT [PK_REL_REQUERIMIENTO_ARCHIVO] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
SQL - Trigger Insert
USE [Gestion]
GO
/****** Object: Trigger [dbo].[ins_requerimientos] Script Date: 27/09/2015 11:56:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Create Trigger (New Menu).SQL
ALTER TRIGGER [dbo].[ins_requerimientos]
on [dbo].[REQUERIMIENTO]
for INSERT --DECLARO QUE ES CUANDO OCURRA UNA INSERCION EN LA TABLA REQUERIMIENTOS
as
DECLARE @id_requerimiento INT
,@id_archivo INT
SELECT @id_requerimiento = ID_REQUERIMIENTO --OBTENGO VALORES DE ENTRADA DESDE LA TABLA INSERTED
,@id_archivo = ID_ARCHIVO
FROM inserted
--Y LOS USO PARA INSERTAR SOBRE UNA SEGUNDA TABLA
INSERT INTO Gestion..REL_REQUERIMIENTO_ARCHIVO
( ID_REQUERIMIENTO, ID_ARCHIVO )
VALUES ( @id_requerimiento, -- ID_REQUERIMIENTO - int
@id_archivo -- ID_ARCHIVO - int
)
/************************************************************************/
/*TABLAS AFECTADAS PARA TENER UNA IDEA*/
CREATE TABLE [dbo].[REQUERIMIENTO](
[ID_REQUERIMIENTO] [int] IDENTITY(1,1) NOT NULL,
[ID_PROYECTO] [int] NULL,
[NOMBRE_REQUERIMIENTO] [varchar](max) NULL,
[DESCRIPCION_REQUERIMIIENTO] [varchar](max) NULL,
[TIPO_REQUERIMIENTO] [varchar](50) NULL,
[ESTADO] [tinyint] NULL,
[ID_ARCHIVO] [int] NULL,
CONSTRAINT [PK_REQUERIMIENTO] PRIMARY KEY CLUSTERED
(
[ID_REQUERIMIENTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
CREATE TABLE [dbo].[REL_REQUERIMIENTO_ARCHIVO](
[ID] [int] IDENTITY(1,1) NOT NULL,
[ID_REQUERIMIENTO] [int] NULL,
[ID_ARCHIVO] [int] NULL,
CONSTRAINT [PK_REL_REQUERIMIENTO_ARCHIVO] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
/************************************************************************/
GO
/****** Object: Trigger [dbo].[ins_requerimientos] Script Date: 27/09/2015 11:56:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Create Trigger (New Menu).SQL
ALTER TRIGGER [dbo].[ins_requerimientos]
on [dbo].[REQUERIMIENTO]
for INSERT --DECLARO QUE ES CUANDO OCURRA UNA INSERCION EN LA TABLA REQUERIMIENTOS
as
DECLARE @id_requerimiento INT
,@id_archivo INT
SELECT @id_requerimiento = ID_REQUERIMIENTO --OBTENGO VALORES DE ENTRADA DESDE LA TABLA INSERTED
,@id_archivo = ID_ARCHIVO
FROM inserted
--Y LOS USO PARA INSERTAR SOBRE UNA SEGUNDA TABLA
INSERT INTO Gestion..REL_REQUERIMIENTO_ARCHIVO
( ID_REQUERIMIENTO, ID_ARCHIVO )
VALUES ( @id_requerimiento, -- ID_REQUERIMIENTO - int
@id_archivo -- ID_ARCHIVO - int
)
/************************************************************************/
/*TABLAS AFECTADAS PARA TENER UNA IDEA*/
CREATE TABLE [dbo].[REQUERIMIENTO](
[ID_REQUERIMIENTO] [int] IDENTITY(1,1) NOT NULL,
[ID_PROYECTO] [int] NULL,
[NOMBRE_REQUERIMIENTO] [varchar](max) NULL,
[DESCRIPCION_REQUERIMIIENTO] [varchar](max) NULL,
[TIPO_REQUERIMIENTO] [varchar](50) NULL,
[ESTADO] [tinyint] NULL,
[ID_ARCHIVO] [int] NULL,
CONSTRAINT [PK_REQUERIMIENTO] PRIMARY KEY CLUSTERED
(
[ID_REQUERIMIENTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
CREATE TABLE [dbo].[REL_REQUERIMIENTO_ARCHIVO](
[ID] [int] IDENTITY(1,1) NOT NULL,
[ID_REQUERIMIENTO] [int] NULL,
[ID_ARCHIVO] [int] NULL,
CONSTRAINT [PK_REL_REQUERIMIENTO_ARCHIVO] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
/************************************************************************/
lunes, 7 de septiembre de 2015
SQL - Saber últimas consultas hechas sobre BD y quién.
SELECT s.host_name ,
s.program_name ,
c.session_id ,
c.most_recent_session_id ,
c.connect_time ,
c.net_transport ,
c.protocol_type ,
c.protocol_version ,
c.endpoint_id ,
c.encrypt_option ,
c.auth_scheme ,
c.node_affinity ,
c.num_reads ,
c.num_writes ,
c.last_read ,
c.last_write ,
c.net_packet_size ,
c.client_net_address ,
c.client_tcp_port ,
c.local_net_address ,
c.local_tcp_port ,
c.connection_id ,
c.parent_connection_id ,
c.most_recent_sql_handle ,
s.session_id ,
s.login_time ,
s.host_name ,
s.program_name ,
s.host_process_id ,
s.client_version ,
s.client_interface_name ,
s.security_id ,
s.login_name ,
s.nt_domain ,
s.nt_user_name ,
s.status ,
s.context_info ,
s.cpu_time ,
s.memory_usage ,
s.total_scheduled_time ,
s.total_elapsed_time ,
s.endpoint_id ,
s.last_request_start_time ,
s.last_request_end_time ,
s.reads ,
s.writes ,
s.logical_reads ,
s.is_user_process ,
s.text_size ,
s.language ,
s.date_format ,
s.date_first ,
s.quoted_identifier ,
s.arithabort ,
s.ansi_null_dflt_on ,
s.ansi_defaults ,
s.ansi_warnings ,
s.ansi_padding ,
s.ansi_nulls ,
s.concat_null_yields_null ,
s.transaction_isolation_level ,
s.lock_timeout ,
s.deadlock_priority ,
s.row_count ,
s.prev_error ,
s.original_security_id ,
s.original_login_name ,
s.last_successful_logon ,
s.last_unsuccessful_logon ,
s.unsuccessful_logons ,
s.group_id ,
st.dbid ,
st.objectid ,
st.number ,
st.encrypted ,
st.text
FROM sys.dm_exec_connections c
INNER JOIN sys.dm_exec_sessions s ON c.session_id = s.session_id
CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) AS st
ORDER BY c.session_id
SELECT deqs.last_execution_time AS [Time] ,
dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY deqs.last_execution_time DESC
s.program_name ,
c.session_id ,
c.most_recent_session_id ,
c.connect_time ,
c.net_transport ,
c.protocol_type ,
c.protocol_version ,
c.endpoint_id ,
c.encrypt_option ,
c.auth_scheme ,
c.node_affinity ,
c.num_reads ,
c.num_writes ,
c.last_read ,
c.last_write ,
c.net_packet_size ,
c.client_net_address ,
c.client_tcp_port ,
c.local_net_address ,
c.local_tcp_port ,
c.connection_id ,
c.parent_connection_id ,
c.most_recent_sql_handle ,
s.session_id ,
s.login_time ,
s.host_name ,
s.program_name ,
s.host_process_id ,
s.client_version ,
s.client_interface_name ,
s.security_id ,
s.login_name ,
s.nt_domain ,
s.nt_user_name ,
s.status ,
s.context_info ,
s.cpu_time ,
s.memory_usage ,
s.total_scheduled_time ,
s.total_elapsed_time ,
s.endpoint_id ,
s.last_request_start_time ,
s.last_request_end_time ,
s.reads ,
s.writes ,
s.logical_reads ,
s.is_user_process ,
s.text_size ,
s.language ,
s.date_format ,
s.date_first ,
s.quoted_identifier ,
s.arithabort ,
s.ansi_null_dflt_on ,
s.ansi_defaults ,
s.ansi_warnings ,
s.ansi_padding ,
s.ansi_nulls ,
s.concat_null_yields_null ,
s.transaction_isolation_level ,
s.lock_timeout ,
s.deadlock_priority ,
s.row_count ,
s.prev_error ,
s.original_security_id ,
s.original_login_name ,
s.last_successful_logon ,
s.last_unsuccessful_logon ,
s.unsuccessful_logons ,
s.group_id ,
st.dbid ,
st.objectid ,
st.number ,
st.encrypted ,
st.text
FROM sys.dm_exec_connections c
INNER JOIN sys.dm_exec_sessions s ON c.session_id = s.session_id
CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) AS st
ORDER BY c.session_id
SELECT deqs.last_execution_time AS [Time] ,
dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY deqs.last_execution_time DESC
C# - Operador Condicional Ternario ( ? : )
IF clásico
IF(Valor != null)
Valor = item.valor;
ELSE
Valor = 0.0;
En reemplazo de un IF "Operador Condicional Ternario"
Valor = item.valor != null ? (float)item.valor: (float)0.0;
IF(Valor != null)
Valor = item.valor;
ELSE
Valor = 0.0;
En reemplazo de un IF "Operador Condicional Ternario"
Valor = item.valor != null ? (float)item.valor: (float)0.0;
martes, 4 de agosto de 2015
C# - Solo números con control textbox asp y javascript
1.Crear un archivo Javascript (o dentro de las etiquetas correspondientes dentro de la misma página, no recomendado). en la estructura del sitio web.
2.Dentro del archivo crear la function (función para el ingreso de solo números).
/*Función solo Números*/
function SoloNumeros(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
status = "Este campo solo acepta números!";
return false;
}
}
3. Indicar referencia en la página al archivo .js creado. (escribiéndolo, o arrastrándolo)
4. Agregar la function como atributo en el control requerido en evento Page_Init() de la página.
protected void Page_Init(object sender, EventArgs e)
{
this.txtRut.Attributes.Add("OnKeyPress", "return SoloNumeros(event)");
}
lunes, 13 de julio de 2015
C# - Editar control (combo) asp dentro de una grilla Devexpress
Se ubica el método:
de la grilla, en este método se pinta el formulario que se va a editar (campos de la grilla.) Aquí adentro puedo realizar validaciones o manipulación de los controles. Por ejemplo:
private void miGrilla_HtmlEditFormCreated(object sender, ASPxGridViewEditFormEventArgs e)
{
ASPxGridView control = (ASPxGridView) sender;
int indice = gvValorSeguro.EditingRowVisibleIndex;
if (!control.IsNewRowEditing)
{
if (Convert.ToInt32(Session["valor"]) == 5) //ejemplo de alguna condición que se necesite
{
//para el ejemplo se usa un combo asp normal, pero puede ser cualquier tipo de control.
DropDownList miCombo = (gvValorSeguro.FindEditFormTemplateControl("miCombo") as DropDownList);
if (miCombo != null)
miCombo.Enabled = true;
}
}
}
- miGrilla_HtmlEditFormCreated(object sender, ASPxGridViewEditFormEventArgs e)
de la grilla, en este método se pinta el formulario que se va a editar (campos de la grilla.) Aquí adentro puedo realizar validaciones o manipulación de los controles. Por ejemplo:
private void miGrilla_HtmlEditFormCreated(object sender, ASPxGridViewEditFormEventArgs e)
{
ASPxGridView control = (ASPxGridView) sender;
int indice = gvValorSeguro.EditingRowVisibleIndex;
if (!control.IsNewRowEditing)
{
if (Convert.ToInt32(Session["valor"]) == 5) //ejemplo de alguna condición que se necesite
{
//para el ejemplo se usa un combo asp normal, pero puede ser cualquier tipo de control.
DropDownList miCombo = (gvValorSeguro.FindEditFormTemplateControl("miCombo") as DropDownList);
if (miCombo != null)
miCombo.Enabled = true;
}
}
}
martes, 7 de julio de 2015
SQL - Ver ejecuciones de un determinado JOB
use master
go
CREATE PROCEDURE [dbo].[sp_ViewJobListing]
(
@JobName VARCHAR(255)=NULL
)
--exec master..sp_ViewJobListing 'Nombre de mi Job'
AS
BEGIN
IF OBJECT_ID('tempdb..#Results')>0
DROP TABLE #Results
CREATE TABLE #Results
(
job_id UNIQUEIDENTIFIER NOT NULL,
last_run_date INT NOT NULL,
last_run_time INT NOT NULL,
next_run_date INT NOT NULL,
next_run_time INT NOT NULL,
next_run_schedule_id INT NOT NULL,
requested_to_run INT NOT NULL,
request_source INT NOT NULL,
request_source_id SYSNAME COLLATE DATABASE_DEFAULT NULL,
running INT NOT NULL,
current_step INT NOT NULL,
current_retry_attempt INT NOT NULL,
job_state INT NOT NULL
)
DECLARE @JobID VARCHAR(100)
SELECT TOP 1 @JobID = job_ID FROM msdb.dbo.sysjobs
INSERT INTO #Results
EXECUTE master.dbo.xp_sqlagent_enum_jobs 1, @JobID
SELECT
s.Name,
CASE WHEN s.enabled = 0 THEN 'No' ELSE 'Yes' END AS Enabled,
CASE WHEN next_run_date > 0 THEN 'Yes' ELSE 'No' END AS Scheduled,
sc.name AS Category,
current_step AS CurrentExecutionStep,
last_run_date,
next_run_date,
CASE WHEN xp.running = 0 THEN 'Not Running' ELSE 'Executing...' END AS Status,
ISNULL((
SELECT CASE WHEN run_status = 1 THEN 'Succeeded' WHEN run_status = 3 THEN 'Cancelled' WHEN run_status = 0 THEN 'Failed' WHEN run_status IS NULL THEN 'Unknown' END AS LastRunStatus
FROM
msdb..sysjobhistory sho
WHERE
sho.job_id = xp.job_id AND
sho.instance_id =
(
SELECT MAX(instance_id)
FROM msdb..sysjobhistory sj (NOLOCK)
WHERE sj.job_id = sho.job_id
)
) ,'Unknown') AS LastRunStatus
FROM #Results xp
INNER JOIN msdb..sysjobs s on xp.job_id = s.job_id
INNER JOIN msdb..syscategories sc on s.category_id = sc.category_id
WHERE
s.Name = ISNULL(@JobName, s.Name)
ORDER BY s.Name
IF @JobName IS NOT NULL
BEGIN
CREATE TABLE #JobHistory
(
StepID INT,
StepName SYSNAME,
Message NVARCHAR(4000),
RunStatus INT,
RunDate INT,
RunTime INT,
RunDuration INT,
operator_emailed NVARCHAR(100),
operator_netsent NVARCHAR(100),
operator_paged NVARCHAR(100)
)
INSERT INTO #JobHistory
SELECT
sjh.step_id,
sjh.step_name,
sjh.message,
sjh.run_status,
sjh.run_date,
sjh.run_time,
sjh.run_duration,
operator_emailed = so1.name,
operator_netsent = so2.name,
operator_paged = so3.name
FROM
msdb.dbo.sysjobhistory sjh
JOIN msdb.dbo.sysjobs sjj ON sjh.job_id = sjj.job_id
LEFT OUTER JOIN msdb.dbo.sysoperators so1 ON (sjh.operator_id_emailed = so1.id)
LEFT OUTER JOIN msdb.dbo.sysoperators so2 ON (sjh.operator_id_netsent = so2.id)
LEFT OUTER JOIN msdb.dbo.sysoperators so3 ON (sjh.operator_id_paged = so3.id),
msdb.dbo.sysjobs sj
WHERE
sjj.Name = @JobName and
(sj.job_id = sjh.job_id)
SELECT
StepID, StepName, Message, RunDate AS LastRunTime,
CASE RunStatus
WHEN 0 THEN 'Failed'
WHEN 1 THEN 'Succeeded'
WHEN 2 THEN 'Retry (step only)'
WHEN 3 THEN 'Canceled'
WHEN 4 THEN 'In-progress message'
WHEN 5 THEN 'Unknown'
END AS RunStatus
FROM #JobHistory
ORDER BY LastRunTime DESC, StepID ASC
END
END
GO
EXECUTE sp_ms_marksystemobject 'sp_ViewJobListing'
go
CREATE PROCEDURE [dbo].[sp_ViewJobListing]
(
@JobName VARCHAR(255)=NULL
)
--exec master..sp_ViewJobListing 'Nombre de mi Job'
AS
BEGIN
IF OBJECT_ID('tempdb..#Results')>0
DROP TABLE #Results
CREATE TABLE #Results
(
job_id UNIQUEIDENTIFIER NOT NULL,
last_run_date INT NOT NULL,
last_run_time INT NOT NULL,
next_run_date INT NOT NULL,
next_run_time INT NOT NULL,
next_run_schedule_id INT NOT NULL,
requested_to_run INT NOT NULL,
request_source INT NOT NULL,
request_source_id SYSNAME COLLATE DATABASE_DEFAULT NULL,
running INT NOT NULL,
current_step INT NOT NULL,
current_retry_attempt INT NOT NULL,
job_state INT NOT NULL
)
DECLARE @JobID VARCHAR(100)
SELECT TOP 1 @JobID = job_ID FROM msdb.dbo.sysjobs
INSERT INTO #Results
EXECUTE master.dbo.xp_sqlagent_enum_jobs 1, @JobID
SELECT
s.Name,
CASE WHEN s.enabled = 0 THEN 'No' ELSE 'Yes' END AS Enabled,
CASE WHEN next_run_date > 0 THEN 'Yes' ELSE 'No' END AS Scheduled,
sc.name AS Category,
current_step AS CurrentExecutionStep,
last_run_date,
next_run_date,
CASE WHEN xp.running = 0 THEN 'Not Running' ELSE 'Executing...' END AS Status,
ISNULL((
SELECT CASE WHEN run_status = 1 THEN 'Succeeded' WHEN run_status = 3 THEN 'Cancelled' WHEN run_status = 0 THEN 'Failed' WHEN run_status IS NULL THEN 'Unknown' END AS LastRunStatus
FROM
msdb..sysjobhistory sho
WHERE
sho.job_id = xp.job_id AND
sho.instance_id =
(
SELECT MAX(instance_id)
FROM msdb..sysjobhistory sj (NOLOCK)
WHERE sj.job_id = sho.job_id
)
) ,'Unknown') AS LastRunStatus
FROM #Results xp
INNER JOIN msdb..sysjobs s on xp.job_id = s.job_id
INNER JOIN msdb..syscategories sc on s.category_id = sc.category_id
WHERE
s.Name = ISNULL(@JobName, s.Name)
ORDER BY s.Name
IF @JobName IS NOT NULL
BEGIN
CREATE TABLE #JobHistory
(
StepID INT,
StepName SYSNAME,
Message NVARCHAR(4000),
RunStatus INT,
RunDate INT,
RunTime INT,
RunDuration INT,
operator_emailed NVARCHAR(100),
operator_netsent NVARCHAR(100),
operator_paged NVARCHAR(100)
)
INSERT INTO #JobHistory
SELECT
sjh.step_id,
sjh.step_name,
sjh.message,
sjh.run_status,
sjh.run_date,
sjh.run_time,
sjh.run_duration,
operator_emailed = so1.name,
operator_netsent = so2.name,
operator_paged = so3.name
FROM
msdb.dbo.sysjobhistory sjh
JOIN msdb.dbo.sysjobs sjj ON sjh.job_id = sjj.job_id
LEFT OUTER JOIN msdb.dbo.sysoperators so1 ON (sjh.operator_id_emailed = so1.id)
LEFT OUTER JOIN msdb.dbo.sysoperators so2 ON (sjh.operator_id_netsent = so2.id)
LEFT OUTER JOIN msdb.dbo.sysoperators so3 ON (sjh.operator_id_paged = so3.id),
msdb.dbo.sysjobs sj
WHERE
sjj.Name = @JobName and
(sj.job_id = sjh.job_id)
SELECT
StepID, StepName, Message, RunDate AS LastRunTime,
CASE RunStatus
WHEN 0 THEN 'Failed'
WHEN 1 THEN 'Succeeded'
WHEN 2 THEN 'Retry (step only)'
WHEN 3 THEN 'Canceled'
WHEN 4 THEN 'In-progress message'
WHEN 5 THEN 'Unknown'
END AS RunStatus
FROM #JobHistory
ORDER BY LastRunTime DESC, StepID ASC
END
END
GO
EXECUTE sp_ms_marksystemobject 'sp_ViewJobListing'
lunes, 6 de julio de 2015
SQL - Delay para la ejecución de una instrucción.
WAITFOR DELAY '02:00' --Dos Horas
WAITFOR DELAY '00:02' --Dos Minutos
WAITFOR DELAY '00:00:02' --Dos Segundos
WAITFOR DELAY '00:00:00.200' --Dos décimas de segundo
Ejemplo:
EXEC msdb.dbo.sp_start_job 'DTS_ParidadRC'
--espera la ejecución del JOB
WAITFOR DELAY '00:00:05'
-- y luego de 5 segundos consulta
SELECT * FROM t_paridades
WAITFOR DELAY '00:02' --Dos Minutos
WAITFOR DELAY '00:00:02' --Dos Segundos
WAITFOR DELAY '00:00:00.200' --Dos décimas de segundo
Ejemplo:
EXEC msdb.dbo.sp_start_job 'DTS_ParidadRC'
--espera la ejecución del JOB
WAITFOR DELAY '00:00:05'
-- y luego de 5 segundos consulta
SELECT * FROM t_paridades
Power Designer - Agregar Origen de Datos (Ej. SQL SERVER 2012)
Paso 1: Agregar un Origen de Datos.
Paso 2: Elegir Versión.
Paso 3: Rellenar campos.
Paso 4 : Agregar credenciales
Paso 5: Elegir BD predeterminada.
Paso 6: Creación.
Paso 7 : Ya estará creado el origen.
Paso 8: En Power Designer.
Paso 9: Al hacer Ingeniería Inversa se selecciona la BD más alta que aparezca.
Paso 10: Elegir la BD
Paso 11: poner credenciales.
Paso 12: Ya se puede pasar la BD a Power Designer.
Suscribirse a:
Entradas (Atom)















