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

Corregir vinculo de usuarios SQL Server


En ocasiones cuando reinstalamos el servidor SQL Server y restauramos la Base de Datos, los datos de la tabla sysusers de la Base de Datos restaurada no esta vinculada correctamente con los datos de la tabla syslogins de la Base de Datos master, para esto debemos de corregir dichos vínculos.

Ejecutamos el siguiente comando:

EXEC sp_change_users_login 'Auto_Fix' , 'usuario' , NULL, 'contraseña'

usuario, es el nombre de usuario a vincular
contraseña, es la contraseña del usuario a vincular




Saber si trigger esta activo o inactivo - SQL Server


Use mi_basedatos

GO

select    cast (name as char(60)) as [Trigger], case when (status & 0x800)= 2048 then 'Inactivo' else 'Activo' end as status

from      sysobjects

where type='TR'





Cambiar contraseña de inicio de sesión SQL Server


Para cambiar la contraseña de un inicio de sesión de SQL Server ejecutamos el siguiente procedimiento almacenado sp_password.

Argumentos:
@old : Es la contraseña antigua.
@new: Es la nueva contraseña.
@loginame:  Es el nombre de inicio de sesión.


Observaciones:

La contraseña puede contener de 1 a 128 caracteres.
La contraseña se almacena de forma cifrada en el campo password de la tabla sysxlogins de la Base Datos master.
sp_password @old = '123456', @new = 'elmer84', @loginame ='sa'
Si no se especifica el parámetro @loginame  se cambia el nombre de sesión con el cual estamos logueado.




Obtener el espacio usado por tablas, vistas e indices en base de datos SQL Server


Para visualizar el espacio usado por las tablas,indices y vistas, hacemos uso del procedimiento almacenado sp_spaceused, el cual muestra la cantidad de filas, la cantidad de espacio reservado en KB, el tamaño de datos en KB, el espacio usado por los indices de la tabla en KB y el espacio no utilizado en KB.

Para visualizar el espacio utilizado por la tabla clientes.


EXEC sp_spaceused 'clientes'


Si se omite el parámetro, el procedimiento almacenado muestra el espacio utilizado por la base de datos actual.


EXEC sp_spaceused


Para optimizar el proceso dejo el procedimiento almacenado que lista todas las tablas y vistas.



CREATE  PROCEDURE USP_OBTENER_ESTADISTICA_TABLAS
AS
BEGIN

/*===============================*/
/* Estadistica Tablas            */
/*===============================*/
       DECLARE @SQL AS VARCHAR(255)
       DECLARE @TOTAL DECIMAL(18,0)

       --Cursor que contiene todos los objetos que ocupan espacio
       DECLARE objects_cursor CURSOR LOCAL FAST_FORWARD READ_ONLY FOR
      
             SELECT NAME FROM sysobjects o
             WHERE  o.xtype = 'U' or
                    o.xtype = 'V'
      
      
       --Tabla temporal para albergar los resultados
       CREATE TABLE #results
       (     Nombre SYSNAME,
             Filas CHAR(11),
             Reservado VARCHAR(18),
             Datos VARCHAR(18),
             Tamano_Indice VARCHAR(18),
             Libre VARCHAR(18)
       )
       --Recorremos el cursor obteniendo la información de espacio ocupado
       DECLARE @object_name AS SYSNAME
      
       OPEN objects_cursor
      
       FETCH NEXT FROM objects_cursor INTO @object_name;
       WHILE @@FETCH_STATUS = 0
       BEGIN
             INSERT INTO #results (Nombre,Filas,Reservado,Datos,Tamano_Indice,Libre)
             EXEC sp_spaceused @object_name
      
             FETCH NEXT FROM objects_cursor INTO @object_name;
       END
      
       CLOSE objects_cursor;
       DEALLOCATE objects_cursor;
      
       -- Quitamos "KB" para poder ordenar
       UPDATE #results 
       SET    Reservado = LEFT(Reservado,LEN(Reservado)-3),
              Datos = LEFT(Datos,LEN(Datos)-3),
              Tamano_Indice = LEFT(Tamano_Indice,LEN(Tamano_Indice)-3),
              Libre = LEFT(Libre,LEN(Libre)-3)
      
       --Ordenamos la información por el tamaño ocupado
       SELECT      
             Nombre,
             Reservado AS [Tamaño en Disco (KB)],
             Datos AS [Datos (KB)],    
             Tamano_Indice AS [Indices (KB)],
             Filas AS Filas_Total
       FROM #results
       ORDER BY CONVERT(bigint, Reservado) DESC
      
       --Eliminar la tabla temporal
       DROP TABLE #results
END






Conexión a SQL Server 2000 desde PowerBuilder 9.x usando archivo INI



Siguiendo con el tema de manejo y uso de conexiones a SQL server, en el presente código veremos cómo realizar una conexión a SQL Server 2000 tomando sus parámetros de conexión desde un archivo INI.

El primer paso es definir de manera correcta la estructura del archivo INI, registrando los principales parámetros que se necesita para realizar una conexión con éxito.

Pues bien aquí dejo una muestra del archivo INI usado en este ejemplo.

Nombre del Archivo: conexion.ini




[sqlserver] 
DBMS=MSS Microsoft SQL Server 6.x
Database=prueba
ServerName=ATENA
LogId=sa


Código para realizar la conexión


String startupfile


startupfile="conexion.ini" 


SQLCA.DBMS = ProfileString (startupfile, "sqlserver", "DBMS", "")
SQLCA.database = ProfileString (startupfile, "sqlserver", "Database", "")
SQLCA.servername = ProfileString (startupfile, "sqlserver", "ServerName", "")
SQLCA.logid =ProfileString (startupfile, "sqlserver", "LogId", "")
SQLCA.logpass ="contraseña"


connect using SQLCA;

Los archivos INI también son útiles para almacenar información acerca de las preferencias de los usuarios así como otros parámetros usados por la aplicación.




Conexión a SQL SERVER 2000 mediante OLE DB



PowerBuilder desde la versión 10 no tiene soporte para conexiones nativas con Sql Server, en su reemplazo la conexión se realiza vía OLE DB y ADO.NET.

Pues bien ante este problema pondré el código que utilice para realizar la conexión  mediante OLE DB:

SQLCA.dbms="OLE DB"
SQLCA.logid="sa"
SQLCA.logpass="1234"
SQLCA.servername="ATENA"
SQLCA.DBParm="PROVIDER='SQLOLEDB',DATASOURCE='ATENA',PROVIDERSTRING='database=prueba'"

connect;
if sqlca.sqlcode<>0 then
   MessageBox ("ERROR", "Error en conexión" + sqlca.sqlerrtext)
   return
  end if

messagebox("Exito","Se Conecto a la Base de Datos")



Detalles del servidor:

Nombre de Servidor: "ATENA"
Nombre de Base Datos: "prueba"
Usuario para conexion: "sa"
Contraseña del usuario: "1234"