Hiển thị các bài đăng có nhãn tablas. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn tablas. Hiển thị tất cả bài đăng

Usando SQL Server Comparison Tool para comparar bases de datos


Es común la necesidad de comparar bases de datos, ya sea para solucionar problemas, para revisar el efecto de una aplicación sobre una base de datos, etc.

En este contexto, SQL Server Comparison Tool es una herramienta que nos permite comparar bases de datos SQL Server con mucha facilidad. En este artículo mostraré su uso en dos escenarios.

Escenario 1: Dos bases de datos iguales, pero una de ellas una tabla, una vista y dos procedimientos almacenados extra


Para este escenario, yo creé un par de bases de datos: Test 1 y Test2. Test2 contendrá la tabla, vista y procedimientos almacenados extras. Por el momento, no tienen nada:



Ahora, insertaremos datos idénticos en ambas bases de datos: Una tabla llamada Personas, una vista llamada vista_Personas y un procedimiento almacenado llamado pa_Personas.

Tabla Personas


Primero, la tabla Personas con datos idénticos. Abra una ventana de consultas y pegue y ejecute la siguiente consulta:

USE Test1;
CREATE TABLE Personas
(
ID int,
Nombre varchar(255),
Apellido varchar(255),
Edad int,
);
GO

INSERT INTO Personas
VALUES
(1,'Albert','Einstein',56),
(2,'Marilyn','Monroe',18),
(3,'Bart','Simpson',10),
(4,'Mary','Jane',42)
GO

USE Test2;
CREATE TABLE Personas
(
ID int,
Nombre varchar(255),
Apellido varchar(255),
Edad int,
);
GO

INSERT INTO Personas
VALUES
(1,'Albert','Einstein',56),
(2,'Marilyn','Monroe',18),
(3,'Bart','Simpson',10),
(4,'Mary','Jane',42)
GO

Eso crea una tabla llamada Personas en ambas bases de datos. Luego, se añaden algunos datos a la tabla.



Crear la vista


Para crear la vista, ejecute la siguiente consulta:

USE Test1;
GO
CREATE VIEW vista_Personas
AS
SELECT Nombre, Apellido
FROM Personas
WHERE Edad > 20;
GO

USE Test2;
GO
CREATE VIEW vista_Personas
AS
SELECT Nombre, Apellido
FROM Personas
WHERE Edad > 20;
GO

Eso crea una vista llamada vista_Personas en la base de datos Test1 que selecciona todas as personas mayores de 20.

Crear el procedimiento almacenado


Para crear el procedimiento almacenado pa_Personas, ejecute el siguiente código:

USE Test1
GO
CREATE PROCEDURE pa_Personas
@edad int
AS
SELECT Nombre, Apellido
FROM Personas
WHERE Edad = @edad
GO

USE Test2
GO
CREATE PROCEDURE pa_Personas
@edad int
AS
SELECT Nombre, Apellido
FROM Personas
WHERE Edad = @edad
GO

En este punto, tenemos dos bases de datos con datos idénticos. Lo siguiente será añadir una tabla, una vista y 2 procedimientos almacenados extra a la base de datos Test2. Lo podemos hacer ejecutando la siguiente consulta:

USE Test2
GO
CREATE TABLE Autos
(
Id int,
Marca varchar(255),
Transmision varchar(255),
)
GO

INSERT INTO Autos
VALUES
(1,'Toyota','manual'),
(2,'Mazda','manual'),
(3,'Ford','automatica'),
(4,'Toyota','automatica')
GO

CREATE VIEW vista_extra
AS
SELECT Id, Marca
FROM Autos
WHERE Transmision = 'manual'
GO

CREATE PROCEDURE pa_extra
@marca varchar(255)
AS
SELECT Id, Transmision
FROM Autos
WHERE Marca = @marca
GO

CREATE PROCEDURE pa_extra2
@marca varchar(255)
AS
SELECT Id, Transmision
FROM Autos
WHERE Marca = @marca
GO

Comparar las diferencias entre bases de datos con SQL Server Comparisson Tool

1. Abra SQL Server Comparisson Tool

2. Conéctese a su servidor SQL Server

3. En el panel izquierdo, en ‘Database’ seleccione ‘Test1’. En el panel derecho, seleccione ‘Test2’:



4. Haga clic en ‘Compare All’.

5. Seleccione ‘Tables’, ‘Procedures’ y ‘Views’ y haga clic en ‘Compare’.



6. Ya que la comparación ha sido realizada, los resultados serán mostrados en un reporte:



Este puede ser copiado al portapapeles o a un archivo.

Escenario 2: Dos tablas idénticas, una de ellas con 3 filas extras de datos


Para este escenario, usaremos la tabla ‘Personas’, que es idéntica tanto en Test1 como en Test2. Ahora, para añadir las 3 filas extras de datos a esta tabla en Test2 use la siguiente consulta:

USE Test2
GO
INSERT INTO Personas
VALUES
(6,'Abraham','Lincoln',40),
(7,'Veronica','Aruquipa',25),
(8,'Maria','Leon',20)
GO

Para hacer la comparación de tablas con SQL Server Comparison Tool:

1. Abra SQL Server Comparison Tool.

2. Conéctese a su servidor SQL Server.

3. En el panel izquierdo, en ‘Database’ seleccione ‘Test1’. En el panel derecho, seleccione ‘Test2’ y la tabla ‘Personas’:



4. Haga clic en ‘Compare Data’.

5. Haga clic en ‘OK’ en el diálogo ‘Data Comparison options’.

6. Espere un momento y se generará un reporte con un resumen de los resultados. En este caso, muestran las 3 filas de diferencia:



SQL Server Comparison Tool es una herramienta que se destaca por su facilidad de uso. Además de eso, la posibilidad de exportar los resultados a diferentes tipos de salidas le otorga utilidad extra. La herramienta tiene un periodo de prueba de 30 días. Ya que se trata de un periodo de prueba gratis, aconsejo probar esta herramienta, ya que, en realidad, es muy fácil de usar y ahorra tiempo y esfuerzo.

Cómo crear tablas, vistas, procedimientos almacenados y funciones en SQL Server 2014


En un anterior artículo hablé acerca de la instalación de SQL 2014 Express. Pues bien, en esta ocasión continuaré con esta introducción a SQL Server 2014 abordando el tema de la creación de algunos objetos básicos. Consulta el índice para ir directamente al tema de tu interés.

Requerimientos:


Índice

Cómo crear Tablas en SQL Server 2014
Cómo crear Vistas en SQL Server 2014
Cómo crear Procedimientos Almacenados en SQL Server 2014
Cómo crear Funciones en SQL Server 2014

Cómo crear Tablas en SQL Server 2014

Existen dos maneras comunes de crear una tabla:

  • Con el entorno gráfico de SQL Server Management Studio (SSMS)
    • Expande la base de datos. En este caso, AdventureWorks2014
    • Clic derecho en ‘Tablas’ > Tabla…
    • Crear tabla
    • Podrás ver que puedes crear la tabla en el panel principal. Yo crearé una tabla con las siguientes características:
    • Columnas de tabla
    • Clic en el símbolo de guardar. Elige un nombre para la tabla y haz clic en ‘Aceptar’. Yo llamé mi tabla ‘comidas’.
    • Ahora, haz clic derecho en ‘Tablas’ > Actualizar. Ahora deberías poder ver tu tabla:Comidas

  • Con una consulta SQL
    • Haz clic en ‘Nueva consulta’
    • Ahora crearemos una tabla con las siguientes características:
      • Nombre: alumnos
      • Columnas: ID (int), PrimerNombre (varchar(25)), SegundoNombre (varchar(25)), Apellido (varchar(25)), Curso (int), Nota (int).

La sintaxis para esta expresión SQL es:

CREATE TABLE <nombre>
   (Columna1 <tipo> <otras opciones>,
    Columna2 <tipo> <otras opciones>,
    Columna3 <tipo> <otras opciones>)
GO 

Por tanto, la consulta se verá así:

CREATE TABLE dbo.alumnos
   (ID int PRIMARY KEY NOT NULL,
    PrimerNombre varchar(25),
    SegundoNombre varchar(25),
    Apellido varchar(25),
    Curso int,
    Nota int)
GO

Ahora, haz clic en ‘Ejecutar’.
Ejecutar


    • Actualiza ‘Tablas’. Deberías ver tu tabla creada:

Alumnos

Cómo crear Vistas en SQL Server 2014

Para crear vistas, también se puede utilizar la interfaz gráfica, pero la construcción de este tipo de objetos a través de consultas ayuda a comprender su funcionamiento, así que ese será el método que cubriré ahora.

La sintaxis para crear vistas es la siguiente:

CREATE VIEW <nombre>
AS
<consulta>

Sí, es así de sencillo. Las vistas son una suerte de consultas guardadas que se pueden guardar y consultar posteriormente. Ahora crearemos una vista simple usando la base de datos AdventureWorks 2014. Crearé una vista que devuelva el número telefónico y el tipo de número telefónico de todas las personas cuyo ID esté entre 10 y 20, y la llamaré phoneNumbers. Por tanto, la consulta sería la siguiente:

CREATE VIEW phoneNumbers
AS
SELECT PhoneNumber, PhoneNumberTypeID
FROM Person.PersonPhone
INNER JOIN Person.Person
ON Person.Person.BusinessEntityID = Person.PersonPhone.BusinessEntityID
WHERE Person.Person.BusinessEntityID > 9 AND Person.Person.BusinessEntityID < 21

Haz clic en ‘Ejecutar’ y espera el mensaje de confirmación:



Ahora, supongamos que necesitamos los teléfonos de tipo 3 de todas las personas cuyos IDs estén entre 10 y 20. Para esto, podemos consultar directamente la vista que creamos de la siguiente manera:



Como ven, se trata a la vista como si fuera una tabla.

Cómo crear Procedimientos Almacenados en SQL Server 2014

Los procedimientos almacenados se crean con la siguiente sintaxis:

CREATE PROCEDURE ;
@variable1 ,
@variable2 >
AS


Recuerda que es posible pasar parámetros a los procedimientos almacenados. Ahora crearemos un procedimiento almacenado llamado ‘sp_phonesByLastName’ que nos devuelva el teléfono del apellido que le pasemos como parámetro:

CREATE PROCEDURE sp_phonesByLastName
@lastName nvarchar(50)
AS
SELECT PhoneNumber
FROM Person.PersonPhone
INNER JOIN Person.Person
ON Person.PersonPhone.BusinessEntityID = Person.Person.BusinessEntityID
WHERE Person.Person.LastName = @lastName
GO

Ahora presiona ‘Ejecutar’. Con eso se habrá creado el procedimiento almacenado. Para probarlo, ejecuta la siguiente consulta:

exec sp_phonesByLastName 'Smith'


Eso retornará los teléfonos de las personas con apellido ‘Smith’.
Para encriptar procedimientos almacenados y desencriptarlos, revisa nuestro artículo sobre encriptación y desencriptación.

Cómo crear Funciones en SQL Server 2014

Existen 2 clases de funciones en SQL Server:


  • Funciones escalares: estas funciones devuelven un solo valor. La sintaxis para crearlas es la siguiente:

CREATE FUNCTION (@variable1 )
RETURNS ;
AS 
BEGIN
    >
    RETURN @ret;
END;
GO

Ahora crearemos una función escalar de nombre ‘testFunction’ que devuelva la suma de los precios unitarios de una SalesOrderID en particular. Por tanto, la consulta debería ser:

CREATE FUNCTION testFunction(@orderID int)
RETURNS int
AS
BEGIN
DECLARE @resultado int;
SELECT @resultado = SUM(UnitPrice)
FROM Sales.SalesOrderDetail
WHERE SalesOrderID = @orderID
RETURN @resultado;
END
GO

Ahora presiona ‘Ejecutar’ para que se cree la función.


Para usar la función, ejecuta la siguiente consulta:

SELECT dbo.testFunction(43659) as suma


  • Funciones con valores de tabla: Estas funciones devuelven una tabla. La sintaxis para crear este tipo de funciones es:

CREATE FUNCTION <nombre> (@variable1 <tipo>)
RETURNS TABLE
AS
RETURN 
(
    <consulta>
);

En este caso crearemos una función con valores de tabla llamada ‘testFunction2’, que devuelva una tabla con las columnas ‘CarrierTrackerNumber’, ‘OrderQty’ y ‘ProductID’ correspondientes a un SalesOrderID que se pasará como parámetro. La consulta es como sigue:

CREATE FUNCTION testFunction2 (@salesID int)
RETURNS TABLE
AS
RETURN 
(
    SELECT CarrierTrackingNumber, OrderQty, ProductID
    FROM Sales.SalesOrderDetail
    WHERE SalesOrderID = @salesID
);

Para usar la función con valores de tabla, puedes usar la siguiente consulta:

SELECT * FROM dbo.testFunction2(43661)

El siguiente artículo trata acerca de las copias de seguridad o Backups en SQL Server. Puede consultarlo aquí: https://elpaladintecnologico.blogspot.com/2016/06/backups-o-copias-de-seguridad-en-sql.html