Mostrando entradas con la etiqueta SQL. Mostrar todas las entradas
Mostrando entradas con la etiqueta SQL. Mostrar todas las entradas

miércoles, 27 de junio de 2012

Convertir un archivo .rdl 2005 a 2000

Al subir un archivo .rdl 2005 (osea que fué diseñado, compilado, etc en un VS2005) a un servidor de Reporting Services 2000 salió el siguiente error:

"La definición del informe no es válida. Compruebe que utiliza la definición del informe actual namespace................................................."

Esto se resolvería actualizando la versión de Reporting Services a la 2005. Pero es un cambio que hay que analizarse.. ver a que otros reportes afecta, tiempo, etc.

Un truco para resolver es modificar el XML del reporte .rdl .. pille esto en internet:

1.- abrir el archivo .rdl con un editor de texto (ejm notepad)
2.- En el xml ubicar las siguientes lineas:

< report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition">

Cambiar por:

< Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2003/10/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">

(Notesé que solo se cambiar el "2005" por "2003" y "01" por "10") .

3.- Quitar las siguientes lineas: Ubicar el nodo:

<InteractiveHeight>
y quitar la linea hasta donde cierra su tag </InteractiveHeight>

y

Ubicar el nodo:
<InteractiveWidth>
y quitar la linea hasta donde cierra su tag </InteractiveWidth>

4.- Guardar y cerrar el archivo.
5.- Volver a subirlo.
6.- y Listo.

Gracias por visitar el Blog!!

miércoles, 7 de marzo de 2012

Cambiar la restriccion NOT NULL del campo de una tabla con script sql

Para quitar la restricción NOT NULL a un campo de una tabla mediante script sql :

ALTER TABLE myTabla
ALTER COLUMN elcampo TipoDatoCampo NULL

Por ejemplo tenemos la tabla "Persona" con la columan "Telefono" de tipo varchar(10) not null, para cambiarle la restriccion seria:

ALTER TABLE Persona
ALTER COLUMN Telefono varchar(10) NULL

martes, 1 de febrero de 2011

SQL Split

SQL Split Function

Delimeter es una caracter string usado para identificar los limites de la subcadena.

Below is Split Function in SQL
DECLARE @NextString NVARCHAR(40)
DECLARE @Pos INT
DECLARE @NextPos INT
DECLARE @String NVARCHAR(40)
DECLARE @Delimiter NVARCHAR(40)

SET @String ='SQL,TUTORIALS'
SET @Delimiter = ','
SET @String = @String + @Delimiter
SET @Pos = charindex(@Delimiter,@String)

WHILE (@pos <> 0)
BEGIN
SET @NextString = substring(@String,1,@Pos - 1)
SELECT @NextString -- Show Results
SET @String = substring(@String,@pos+1,len(@String))
SET @pos = charindex(@Delimiter,@String)
END

viernes, 9 de julio de 2010

SQL - Case en el Where

WHERE OrderNumber LIKE
CASE WHEN IsNumeric(@OrderNumber) = 1 THEN
@OrderNumber
ELSE
'%' + @OrderNumber
END

------------------------------------------------------------------------------

WHERE
OrderNumber = CASE
WHEN (IsNumeric(@OrderNumber) = 1)
THEN CONVERT(INT, @OrderNumber)
ELSE -9999 -- Some numeric value that just cannot exist in the column
END
OR
FirstName LIKE CASE
WHEN (IsNumeric(@OrderNumber) = 0)
THEN '%' + @OrderNumber
ELSE ''
END

------------------------------------------------------------------------------

WHERE
IF IsNumeric(@OrderNumber) = 1
OrderNumber = @OrderNumber
ELSE
OrderNumber LIKE '%' + @OrderNumber + '%'

miércoles, 30 de junio de 2010

SQL - Comparar Fechas sin Horas

Con esta instrucción CONVERT(date, FechaVisita,103) , saca solo la fecha sin la hora.
Ejm:

select
PK_Visita
,FechaVisita
, convert(date,GETDATE(),103)
from Visita
where CONVERT(date, FechaVisita,103) >= CONVERT(date,getdate(),103)

martes, 15 de junio de 2010

SQL Insertar un Select en un Insert

INSERT INTO Tabla1 (Nombre,Nic,Servicios,Email,PaginaWeb,Telefono,Usuario,Contraseña,Direccion )

Select

Pr.Nombre,Pr.Nic,Pr.Servicios,Pr.Email,Pr.PaginaWeb,Pr.Telefono,Pr.Usuario,
Pr.Contraseña,Pr.Direccion
from Tabla2 as Pr

viernes, 21 de mayo de 2010

SQL - Case

Select
PK_Persona,
Nombre
(CASE WHEN TipoRelacion = 1 THEN
'Empleado'
WHEN TipoRelacion = 0 THEN 'Contratista' END) as Tipo
From Persona

jueves, 20 de mayo de 2010

SQL - Cantidad de días en el mes de la fecha que especifiques

declare @fecha as datetime;
set @fecha = '01/02/2010';
--este servidor sql recibe las fechas en formato 'dia/mes/año'
--cambiar segun la configuracion del servidor sql


SET @fecha = CONVERT(VARCHAR(10), @fecha, 101)

SET @fecha = @fecha - DAY(@fecha) + 1

select DATEDIFF(DD, @fecha, DATEADD(MM, 1, @fecha))



Con esto ya podes saber la fecha fin de un mes especifico en SQL :)

jueves, 15 de abril de 2010

Exportar datos de un excel a una tabla SQL

Selecciono la Base de datos/Task/Import data/

Choose a Data Source
'Data source' : Microsoft Excel (Busco y selecciono esta opción)
'Excel file path': (seleccionamos la ruta del archivo excel)
'First row has column names' (check, el cual indica que las primeras filas del excel seran los nombres de la nueva tabla)
Siguiente/

Choose a Destination
Server name: (seleccionamos nombre del servidor)
Authentication (seleccionamos la autentificacion)
Database: (verificamos que este seleccionada la Base de datos correcta)
Siguiente/

Specify Table Copy or Query
Copy data from one or more tables or views (lo seleccionamos)

Select Source Tables and Views
(Seleccionamos la(s) hoja(s) del excel con los datos)
En la columna 'Destination' seleccionamos la tabla destino o el nombre de la nueva tabla
Le damos en 'Preview' para ver como quedaria la tabla destino 'Destination'
Siguiente/

Save and Run Package
Run immediately(seleccionamos)
/Finalizar

The execution was successful


Una vez creada la tabla.. ya podemos manipularla con consultas o procedimientos almacenados
para pasar los datos como querramos a la tabla que necesitemos.

miércoles, 10 de febrero de 2010

Crear un usuario para una Base de datos

use Master

exec sp_addlogin 'usuarioBDPrueba', '123'

GO

Use BDPrueba

exec sp_grantdbaccess 'usuarioBDPrueba'
GO

exec sp_addrolemember 'db_owner','usuarioBDPrueba'
GO


El script 1ro sobre master se crea el usuario "usuarioBDPrueba" y le da un password "123".
2do sobre la base de datos "BDPrueba" , se esta autorizando al usuario "usuarioBDPrueba" para que pueda acceder a la base de datos con "sp_grantdbaccess" y hacemos que el usuario tome el rol de dueño de la Base de datos con "db_owner".

miércoles, 27 de enero de 2010

Cursores en SQL

DECLARE
@pk_tarea AS VARCHAR;
DECLARE
@descripcion as Varchar;

-- declaro el cursor.
DECLARE CURSOR_TAREA CURSOR FOR
-- mi consulta
select pk_Tarea
, convert(varchar,tarea) as tarea
from tarea

-- abro el cursor ojo... a lo ultimo debe cerrarse.
OPEN CURSOR_TAREA
-- saco el primer registro.
FETCH NEXT from CURSOR_TAREA
-- y las meto en mis variables.. cuidando el orden.
INTO @pk_tarea , @descripcion;

WHILE
@@FETCH_STATUS = 0
BEGIN
PRINT 'PKTAREA : ' + @pk_tarea
PRINT 'DESCRIPCION : ' + @descripcion

-- aqi avanzo al proximo registro
FETCH NEXT from CURSOR_TAREA
-- y le pongo los nuevos valores a mis variables..
INTO @pk_tarea , @descripcion;

END
;

CLOSE CURSOR_TAREA;
DEALLOCATE CURSOR_TAREA;
-- y por ultimo estas dos lineas para cerrar el cursos... ojo...sino despues salen errores.. porq el cursor se quedo abierto...

Formato universal de fechas para SQL SERVER

Siempre que manejes fechas en sql server debes utilizar el formato yyyyMMdd HH:mm:ss, ya que si manejas otro puede ser que tu version varia de español a ingles.

aqui les dejo un ejemplo para visual basic.net

Private Const FormatoUniversal As String = "yyyyMMdd HH:mm:ss" 'FORMATO DE FECHA UNIVERSAL
Public Shared Function SQL_ObtenerFecha(ByVal __fecha As Date) As String
Return Format(__fecha, FormatoUniversal)
End Function

quitar horas de una fecha en SQL

Cast(Floor(Cast(fecha_hora as Float))as DateTime)

esta instruccion te permite resetear a 00:00:00 la parte de las horas de un DateTime de SQL, espero que les sea de utilidad, a mi me funcionó perfectamente.

Funcion Split en SQL

En SQL, no existe una función 'Split' como tal, por lo que investigando encontré una que simula hacer un 'Split'.
La idea de hacer un Split es dividir una cadena, la cual deberia ser dividida por un caracter en comun.
Este ejemplo @String recibe la cadena y @Delimiter es la cadena de caracteres utilizados para identificar los límites de las subcadenas.

DECLARE @NextString NVARCHAR(40)
DECLARE @Pos INT
DECLARE @NextPos INT
DECLARE @String NVARCHAR(40)
DECLARE @Delimiter NVARCHAR(40)

SET @String ='SQL,TUTORIALS'
SET @Delimiter = ','
SET @String = @String + @Delimiter
SET @Pos = charindex(@Delimiter,@String)

WHILE (@pos <> 0)
BEGIN
SET @NextString = substring(@String,1,@Pos - 1)
SELECT @NextString -- muestra los resultados
SET @String = substring(@String,@pos+1,len(@String))
SET @pos = charindex(@Delimiter,@String)
END