Una forma sencilla de buscar registros duplicados en una tabla es la siguiente
SELECT columna1, columna2, count(*)
FROM tabla
GROUP BY columna1, columna2
HAVING count(*) > 1
Espero sea de ayuda.
saludos
Una forma sencilla de buscar registros duplicados en una tabla es la siguiente
SELECT columna1, columna2, count(*)
FROM tabla
GROUP BY columna1, columna2
HAVING count(*) > 1
Espero sea de ayuda.
saludos
En ocasiones se necesita hacer un copiado de información de un TextBox a otro en ASP .NET, pero sin necesidad de que se haga un llamado al servidor (AutPost), por ejemplo, tuve la necesidad de hacer una operación entre 2 textbox y mostrarlo en otro que estuviera deshabilitado, entonces buscando un poco encontré esto y lo ajusté a mi proyecto.
Tu aspx debe de contener los 3 Textbox
<asp:TextBox ID=”txtSacos” runat=”server” onkeyup=”Operacion();”></asp:TextBox>
<asp:TextBox ID=”txtBolsas” runat=”server” onkeyup=”Operacion();”></asp:TextBox>
<asp:TextBox ID=”txtResultado” runat=”server”></asp:TextBox>
y en la cabecera el código JavaScript
<head>
<title></title>
<script type=”text/javascript”>
function Operacion() {
var sacos = document.getElementById(‘<%= txtSacos.ClientID %>’).value;
var bolsas = document.getElementById(‘<%= txtBolsas.ClientID %>’).value;
if (sacos != ” && bolsas != ”)
document.getElementById(‘<%= txtResultado.ClientID %>’).value = bolsas + sacos;
}
</script>
</head>
Y eso es todo
Espero sea de ayuda
saludos
Se me presentó un problema al momento de importar un SSIS en SQL 2008, la verdad no sabía a que se debía dado que en mi equipo funcionaba perfectamente pero al instalarlo en un servidor no funcionó el Import SSIS.
El error mostrado era el siguiente
Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED)) (Microsoft.SqlServer.DTSRuntimeWrap)
Una práctica no recomendable pero a veces necesaria es la de eliminar todos los stored procedures de nuestra base de datos, navegando por ahí encontré varias opciones pero esta es la que me pareció más adecuada.
DECLARE @procName VARCHAR(500)DECLARE cur CURSOR
FOR SELECT [name] FROM sys.objects WHERE TYPE = ‘p’OPEN curFETCH NEXT FROM cur INTO @procNameWHILE @@fetch_status = 0BEGINEXEC(‘drop procedure ‘ + @procName)FETCH NEXT FROM cur INTO @procNameENDCLOSE curDEALLOCATE cur
Espero les sea de utilidad
saludos
p.d. el artículo original está aquí
Resulta que por enésima ocasión tuve la necesidad de pasar un string de caracteres como parámetro de un SP de la forma: “3,4,14,29,53,98” donde cada número separado por la coma lo necesito utilizar dentro de un Query como parte de un IN, p.e. Select * from tabla where identificador IN (3,4,14,29,53,98)
, pero estos valores los recibo como un string, entonces fue cuando entra la duda de como poder hacer ese query con los valores que vienen en una cadena, es decir, como quitarle las “” y utilizar el valor.
Después de navegar un rato por la red encontré un método sencillo, donde se va recorriendo el valor de la cadena y se va metiendo cada valor encontrado en una tabla temporal y posteriormente utilizas una consulta del tipo: Select * from tabla Where identificador IN (Select campotmp from #tablatmp)
y eso es todo.
He aquí el ejemplo:
Para saber la fecha de modificación de algún Stored Procedure basta con ejecutar este query
SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'P'
ORDER BY 3
saludos
Para obtener el primer día del mes anterior a través de un query debemos escribir
SELECT CONVERT(VARCHAR(10),LTRIM(RTRIM(STR(DATEPART(YYYY,DATEADD(MM,-1,GETDATE()))))) + ‘-‘ +RIGHT(REPLICATE(‘0’,1)+LTRIM(RTRIM(STR(DATEPART(MM,DATEADD(MM,-1,GETDATE()))))),2) + ‘-‘ +’01’)
o de una manera aún más sencilla
SELECT DATEADD(month, DATEDIFF(month, 0, DATEADD(month, -1,GETDATE())), 0)
Saludos
En ocasiones es necesario hacer un cambio de nombre de la base de datos que estamos utilizando en SQL 2005 o 2008, para ello, es probable que les mande un error al momento de intentar hacerlo directamente con el clic derecho.
Por esto, les mando un script para realizarlo de manera efectiva y sin complicaciones
ALTER DATABASE dboldname SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
SP_RENAMEDB dboldname, dbnewname
GO
ALTER DATABASE dbnewname SET MULTI_USER
GO
y eso es todo…
Espero haya sido de utilidad
saludos
Quiero mostrarles unos sencillos pasos para migrar una base de datos de SQL 2000 a SQL 2008, lo publico debido a que siguiendo los pasos comunes no funciona, pero siguiendo estos si me funcionó, así que espero sea de ayuda.
Primero hay que hacer un backup de la base de datos a migrar:
— Abrir el Query Analizer de SQL 2000
— Abrir una ventana para un nuevo query sobre la base de datos a migrar y escribir lo siguiente
BACKUP DATABASE dbdummy TO DISK = ‘c:\dbdummybackup.bak’
— dbdummy es el nombre de mi base de datos, ahí deben escribir el que ustedes ocupen
— Ejecutar ese query y esperar a que termine.
— Una vez ejecutado el proceso, corroborar en la ruta donde se indicó, que exista el archivo (c:\dbdummybackup.bak)
— Después, abrir el SQL Server Management Studio 2008
— Abrir una ventana para un nuevo query sobre la base de datos master y escribir lo siguiente
RESTORE FILELISTONLY FROM DISK = ‘c:\dbdummybackup.bak’
GO
— Ejecutar ese query y esperar a que termine.
— Aparecerá una tabla de resultados en la cual debemos anotar los nombres que vienen en el campo LOGICALNAME
— Ahora ejecutaremos otro query, deberemos escribir
RESTORE DATABASE dbdummy2008 — nombre de la nueva base de datos
FROM DISK = ‘c:\dbdummybackup.bak’
WITH
MOVE ‘dbdummy_data’ TO ‘c:\Bd2008\dbdummy2008.mdf’,
— lo primero es el nombre que obtuvimos del query anterior del MDF y la ruta donde se almacenará
MOVE ‘dbdummy_log’ TO ‘c:\Bd2008\dbdummy2008.ldf’
— lo primero es el nombre que obtuvimos del query anterior del LOG y la ruta donde se almacenará
GO
— Ejecutar el query y esperar a que termine
Espero haya sido de ayuda
saludos
En ocasiones es necesario hacer uso del paso de parametros cuando queremos hacer una consulta en Integration Services de SQL, después de googlear un poco encontré este método que es muy sencillo.
Primero debemos de tener nuestras variables que serán los parámetros (p.e. VarNumero) y además se debe declarar una variable que sera nuestro query y tendrá nuestro parámetro (p.e. VarQuery), esta variable debe ser de tipo String, en ella se debe de poner el valor de TRUE en la propiedad EvaluateasExpression, y dentro de Expression debemos de poner nuestro query de la siguiente manera
“Select * from Tabla where campox >= ” + (DT_WSTR, 10) @[User::VarNumero]
Ya dentro de nuestro Data Flow Task, en la propiedad Expressions, debemos de seleccionar la primera opción que dice SQLCommand y en el valor debemos de poner @Varquery.
De esta manera el query obtiene el valor de la variable que se tendra como parámetro.
Saludos