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

sábado, 23 de agosto de 2014

Comandos en Gestores de Bases de Datos

  • SQL SERVER
Para modificar el nombre de una tabla se ejecuta la siguiente consulta:
EXEC sp_rename 'nom_tabla_antiguo', 'nom_tabla_nueva'
 
Para modificar el nombre de una columna de una tabla, se ejecuta la siguiente consulta:
EXEC sp_rename 'nom_tabla.nom_columna_antigua', 'nom_columna_nueva'
 
Para consultar los nombres de las columnas en una tabla:
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME= "Nombre Tabla" 
  • ORACLE 
Para consultar los nombres de las columnas en una tabla:
DESC "Nombre Tabla"
  • INFORMIX
Para consultar los nombres de las columnas en una tabla: 
DESC "Nombre Tabla"

sábado, 1 de febrero de 2014

Sentencias SQL

Con esta sentencia se puede conocer cuales instancias de base de datos se tiene en un servidor.

ORACLE 

select * from all_users;

Modificar una tabla (ALTER TABLE)

SQL SERVER
CREATE TABLE dbo.doc_exy (column_a INT ) ;
GO
INSERT INTO dbo.doc_exy (column_a) VALUES (10) ;
GO
ALTER TABLE dbo.doc_exy ALTER COLUMN column_a DECIMAL (5, 2) ;
GO
DROP TABLE dbo.doc_exy ;
GO

viernes, 1 de marzo de 2013

Solucionar Bloqueos en Tablas SQL Server


Resulta que cuando una tabla es muy utilizada (muchas consultas), o cuando se “cruzan” las transacciones sobre la misma tabla, se produce un bloqueo a nivel de tabla, lo que hace que ya no se puedan realizar más consultas. 
Según lo que leí (inicialmente en blog.andr3z.org y luego en otros lugares), existen 2 posibles soluciones al problema:
  •  Modificar la consulta para saltarnos el bloqueo
  • Intentar resolver el bloqueo de la tabla

Cada solución tiene su propio alcance, sus pros y contras, veamos cada solución en detalle:

  • Solución 1: Modificar la consulta para “saltar” el bloqueo:


    Ámbito: No se desbloquea la tabla, solo se devuelven los resultados

    Pros: Permite realizar el SELECT sin restricción.

Contras: Puede retornar resultados fuera del Committed de la base de datos (es decir que los resultados pueden no ser fidedignos)

Para implementar esta solución, basta modificar el SELECT de la consulta, agregando el modificador WITH (NOLOCK), lo que hará que se omita el bloqueo de la tabla:

SELECT Field1, Field2,… FieldN FROM [Mi_Tabla] WITH (NOLOCK) WHERE …

  • Solución 2: Intentar resolver el bloqueo de la tabla:

    Ámbito: Se intenta resolver el bloqueo.
Pros: Se resuelve definitivamente el bloqueo (por lo menos hasta que se vuelva a producir un bloqueo nuevo en la misma tabla)

    Contras: Requiere tener acceso/permisos para “Matar” procesos (incluso de otros usuarios).

Para esta solución, SQL server provee un procedimiento almacenado que muestra los bloqueos en curso: sp_lock.

Basta con ejecutar:

Execute sp_lock

Para ver los bloqueos activos en la base de datos.

Cabe mencionar que adicionalmente SQL Server también provee 2 procedimientos que permiten listar los procesos que están consumiendo muchos recursos: sp_who o sp_who2 siendo este último el que provee más detalles.

Una vez se ha identificado cual es el proceso que esta provocando el bloqueo, se puede proceder a “Matar” dicho proceso utilizando la información que arrojan los procedimientos ya mencionados (básicamente se requiere el ID del proceso que se va a matar).

Ejecutar: 

Kill <id_del_proceso_a_matar>

Bueno, pues eso era todo, como siempre, espero que esta información llegue a ser útil para alguno de ustedes.

Fuente: eklectopia

jueves, 28 de febrero de 2013

Configuracion Conexiones Workbench


Para realizar las diferentes configuraciones para el gestor de bases de datos Workbench, realizamos los siguientes pasos dependiendo del motor de bases de datos:

SQL SERVER


  • Para crear una conexión en el Workbench, debemos crear primero una conexión ODBC, donde ingresamos todos los datos correspondientes a la base de datos.
  • Luego en la interface de configuración de las conexiones del Workbench, configuramos la conexión como vemos a continuación:


















Ya con todas estas configuraciones bien realizadas, es muy posible que no existan problemas con la conexión.

ORACLE

[Configuracion]

INFORMIX

[Configuracion]

martes, 5 de febrero de 2013

Resetear secuencias en tablas de SQL Server

Para resetear una secuencia de una tabla en la base de datos de SQL Server de Microsoft, utilizamos las siguientes instrucciones:
DBCC CHECKIDENT('nombre_tabla',RESEED,0)

Para saber el consecutivo de la secuencia
DBCC CHECKIDENT('nombre_tabla')

sábado, 3 de noviembre de 2012

Despendencias en SQL Server


Ver las dependencias en SQL Server (programación)

Podemos ver las dependencias de una tabla, utilizando la siguiente consulta:

SELECT routine_name, routine_type FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_DEFINITION LIKE '%MinorCategory%'

martes, 2 de octubre de 2012

Seleccionar un rango de datos

INFORMIX
En informix para obtener los primeros 10 registros de una consulta, debemos usar FIRST.
Ejemplo: Select FIRST 10 columna1, columna2 from facturas.

SQL Server
En SQL el Top
Ejemplo: Select TOP(10 ) columna1, columna2 from facturas.

ORACLE
En Oracle es rownum.
Ejemplo: Select * from nomTabla where rownum <= 1

miércoles, 29 de agosto de 2012

Consultas en bases de datos SQL Server


Para realizar una consulta a una base de datos SQL Server, realizaremos lo siguiente como lo veremos en el ejemplo:

using System;
using System.Data;
using System.Data.SqlClient;

class Program
{
    static void Main()
    {
        string connectionString =
            "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=true";

        // Provide the query string with a parameter placeholder.
        string queryString =
            "SELECT ProductID, UnitPrice, ProductName from dbo.products "
                + "WHERE UnitPrice > @pricePoint "
                + "ORDER BY UnitPrice DESC;";

        // Specify the parameter value.
        int paramValue = 5;

        // Create and open the connection in a using block. This
        // ensures that all resources will be closed and disposed
        // when the code exits.
        using (SqlConnection connection =
            new SqlConnection(connectionString))
        {
            // Create the Command and Parameter objects.
            SqlCommand command = new SqlCommand(queryString, connection);
            command.Parameters.AddWithValue("@pricePoint", paramValue);

            // Open the connection in a try/catch block.
            // Create and execute the DataReader, writing the result
            // set to the console window.
            try
            {
                connection.Open();
                SqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    Console.WriteLine("\t{0}\t{1}\t{2}",
                        reader[0], reader[1], reader[2]);
                }
                reader.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadLine();
        }
    }

lunes, 23 de julio de 2012

Función para concatenar campos


Algunas veces es necesario combinar en forma conjunta (concatenar) los resultados de varios campos diferentes.
Cada base de datos brinda una forma para realizar esto:
 Informix: ||
Oracle: CONCAT(), ||
 SQL Server: +
 MySQL: CONCAT()
La sintaxis para CONCAT() es la siguiente: CONCAT(cad1, cad2, cad3, ...): Concatenar cad1, cad2, cad3, y cualquier otra cadena juntas.
Por favor note que la función CONCAT() de Oracle sólo permite dos argumentos – sólo dos cadenas pueden colocarse juntas al mismo tiempo utilizando esta función.
Sin embargo, es posible concatenar más de dos cadenas al mismo tiempo en Oracle utilizando '||'. Observemos algunos ejemplos.
Supongamos que tenemos la siguiente tabla:
Tabla Geography region_name store_name East Boston East New York West Los Angeles West San Diego

 Ejemplo 1:
 MySQL/Oracle: SELECT CONCAT(region_name,store_name) FROM Geography WHERE store_name = 'Boston';
 Resultado : 'EastBoston'

 Ejemplo 2:
Oracle: SELECT region_name || ' ' || store_name FROM Geography WHERE store_name = 'Boston'; Resultado : 'East Boston'

 Ejemplo 3: SQL Server: SELECT region_name + ' ' + store_name FROM Geography WHERE store_name = 'Boston';
 Resultado : 'East Boston'