Escolar Documentos
Profissional Documentos
Cultura Documentos
Nombre Descripción
Servicios que pueden interferir con la instalación Servicios que pueden hacer que salga el error: "unable to
write to mailslot" durante la instalación:
- Oracle
- DBWeb
- Personal Web Server
- IIS
- Microsoft SMTP
- Microsoft NNTP
- Exchange Server
- SNA Server
- BackupExec
- Disk Keeper
- Servicios SNMP.
:::::::::::::::::::::::::::::::::::::::::::::::::
Modo único usuario y echa a todos:
ALTER DATABASE Northwind
SET SINGLE_USER
with ROLLBACK IMMEDIATE
:::::::::::::::::::::::::::::::::::::::::::::::::
Modo único usuario y echa a todos después de x segundos:
ALTER DATABASE Northwind
SET SINGLE_USER
with ROLLBACK AFTER 60 SECONDS
:::::::::::::::::::::::::::::::::::::::::::::::::
Para volver al estado normal:
SET MULTI_USER
Página 1 de 31
Nombre Descripción
Reducción automática ALTER DATABASE Northwind
SET AUTO_SHRINK ON
Cómo dejar fuera de lína las bases de datos ALTER DATABASE Northwind
SET OFFLINE
Cómo cerrar automáticamente una base de datos Cómo cerrar automáticamente una base de datos cuando no
tenga ningún usuario conectado:
ALTER DATABASE Northwind
SET AUTO_CLOSE ON
Requesitos para configurar bien SQLMail con - Para que funcionen bien los perfiles MAPI, la versión de
Outlook debe ser superior a la 5.5.1960.0
- Asegurarse de iniciar el Servicio de MSSQLServer con la
cuenta que usó para crear su perfil de correo.
- Se puede iniciar SQL Mail con: xp_startmail y detenerlo
con: xp_stopmail
Página 2 de 31
Nombre Descripción
Archivo de registro de error del SQL Server Agent Está en:
C:\Archivos de programa\Microsoft SQL
Server\MSSQL\LOG\SQLAGENT.OUT
Introducción de direcciones d mail en Hay quen encerrarla entre corchetes y con SMTP. Así:
[SMTP:usuario@dominio.com]
Procedimiento extendido para línea de comando xp_cmdshell
Formas de guardar un paquete DTS - Localmente en SQL Server: Es el método más común. Se
almacentan en la base de datos msdb y la tabla
sysdtspackages.
- En Meta Data Services: También se almacenan en la base
de datos msdb. Es más lento de guardar y de ejecutar.
- Como archivo de almacenamiento estructurado COM: Son
ficheros con extensión .dts. Para ejecutarlo hay que pulsar
con el botón derecho en el grupo Servicios de tranformación
de datos y seleccionar Abrir paquete.
- Como archivo VB: Se guarda con extensión .bas y luego
Lanzar DTS desde la línea de comando Se utiliza DTSRUN desde la línea de comando.
Para lanzarlo desde el analizador de consultas sería con
xp_cmdshell + DTSRUN
Asistente para crear instrucciones del DTSRUN.EXE Asistente para crear instrucciones del DTSRUN.EXE de
forma gráfica. Se llama DTSRUNUI.EXE y está en
c:\Archivos de programa\Microsoft SQL Server\80\Tools
Solución de error al ejecutar un DTS programado Los paquetes DTS programados los lanza el SQL Server
Agent, con el usuario con el que haya sido iniciado SQL
Server Agent. El usuario debe tener los permisos necesarios
para ejecutar el paquete.
Página 3 de 31
Nombre Descripción
Administración de mensajes de error predefinidos Los mensajes se guardan en la tabla sysmessages dela
base de datos Master.
Ejemplo:
RAISERROR (50001, 10, 1)
El monitor de sistema de Windows 2000 Cuando instalas SQL Server se instalan contadores
adicionales en el monitor del sistema de Windows 2000.
Pronóstico del crecimiento de las bases de datos 1. Crear una bases de datos de auditoría o crear las tablas
en una bases de datos existente:
Página 5 de 31
Nombre Descripción
Recopilación d diversa información con La utilidad SQLDIAG.EXE recopila información de diversas
fuentes y saca el resultado a un archivo de texto
SQLDIAG.TXT, que está en <directorio SQL Server>\Logs.
La utilidad SQLDIAG.EXE está en <directorio SQL
Server>\BINN
Esta es la información del fichero de texto:
- Últimos cinco registros de error de SQL Server.
- Información del Registro.
- Información y versiones de librería de vínculos dinámicos
(Dynamic-link Library, DLL)
- Resultados de un informe sp_configure
- Resultados de sp_who y sp_lock
- Inventario de todos los procedimientos almacenados
extendidos del sistema
- Información de la confiuración del sistema operacional, red
y hardware.
- Las últimas 100 consultas que se ejecutan si la caja negra
está activada
La caja negra La caja negra registra información de consultas en un
archivo de traza denominado blackbox.trc en el directorio
<ruta SQL Server>\Data. Escribe el archivo de traza en
bloqu3es de 128 K.
Para habilitar la caja negra, ejecutar el procedimiento
almacenado sp_trace_create con el parámetro 8 así:
Página 6 de 31
Nombre Descripción
Comandos de OSQL -? Enumera las opciones disponibles
-L Enumera los servidores configurados localmente
-S Servidor al cuál conectarse
-U Nombre de inicio de sesión
-P Contraseña
-E Usar conexión confiable
-H Nombre de la estación de trabajo que debe aparecer en
sp_who
-d Nombre de la base de datos en la que se debe iniciar
-I Tiempo inactivo de inicio de sesión en segundos
-t Tiempo inactivo de comando en segundos
-h Número de filas entre títulos de columnas
-s Separador de columnas
-w Ancho de columna (predeternminado en 80 caracteres)
-a Tamaño del paquete de red
-e Muestra lo escrito
-l Activa los identificadores entre comillas
-D Nombre DSN al cual se debe conecar
-c Terminador del comando
-q Ejecuta consulta entre comillas dobles y permanece en
osql
-Q ejecuta consulta entre comillas dobles y sale de osql
-n Elimina numeración de los resultados
-m Personaliza los mensajes de error
-I Archivo de entrada para consultas
-o Archivo de salida para resultados
-p Genera estadísticas de rendimiento
Uso y creación de plantillas en SQL Query Vienen algunas plantillas predefinidas en la pestaña de al
lado del analizador de objetos.
Para utilizarlas se arrastran hacia la derecha y aparece con
unos valores por defecto entre corchetes angulares "< >"
Los valores se pueden cambiar desde Editar/Reemplazar
parámetros de plantilla.
Ejemplo:
-- =====================
-- Author: <author, varchar(13), David Lozano>
-- Purpose: <purpose, varchar(40), Sample purpose>
-- Created: <created, datetime, 27/02/2003>
-- Company: <company, varchar(13), Mi casa S.A.>
-- =====================
Página 7 de 31
Nombre Descripción
Agregar un procedimiento almacenado extendido 1. Copiar el archivo DLL del procedimiento en la ruta
\Archivos de programa\Microsoft Sql Server\Mssql\BINN
2. Abrir el Administrador corporativo y buscar el grupo
Procedimientos almacenados extendidos de la base de datos
master.
3. Pulsar el botón derecho del ratón en el grupo
Procedimientos almacenados extendidos y seleccionar
Nuevo procedimiento almacenado extendido.
4. Asignar un nombre al procedimiento almacenao, y
especificar el archivo DLL
5. Pulsar en Aceptar, y luego para otorgar los pormisos
indicados, abrir de nuevo el procedimiento almacenado
extendido y pulsar en Permisos.
Para cerrarlas:
KILL 54 (número de transacción)
Ejemplos:
1. SELECT LEFT ('ABCDEFG',3) AS Ejemplo
Página 8 de 31
Nombre Descripción
Listado de servidores SQL en el registro de La clave de registro donde está la lista de servidores que
aparecen a elegir es:
HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL
Server\80\Tools\Clients\PrefServer
Página 9 de 31
Nombre Descripción
Instalar SQL Server en un clúster HOWTO: Configure MSDTC in a Windows 2000 Cluster
Environment [iis]
ID: Q290624 CREATED: 23-FEB-2001 MODIFIED: 15-
SEP-2001
:2000,2000 SP1,2000 SP2,5.0,7.0
PUBLIC |
===================================================
===================
-------------------------------------------------------------------------------
The information in this article applies to:
SUMMARY
=======
NOTE: This article assumes that the cluster has more than
one shared disk.
MORE INFORMATION
================
NOTE: Make sure that you note the disk letter before you
move the disk
resource.
5. Locate the disk group that will hold your IIS or SQL
resources. Right-click
the disk resource, click Change Group, and then select
Cluster Group. A
warning dialog box appears. Click Yes to dismiss the
warning, then click Yes
in the Move Resource dialog box.
16. Select the disk group that you moved the quorum disk to
in step 4.
20. Move your Web or SQL group to node B and back to test
whether MSDTC is
configured correctly on both nodes. You should have an
active MSDTC instance
in your Web or SQL group.
===================================================
===================
Keywords :
Technology : kbwin2000AdvServ
kbwin2000AdvServSearch kbwin2000Search
kbSQLServSearch kbiisSearch kbAudDeveloper
kbClustServSearch kbiis500 kbSQLServ700
kbSQLServ2000Search kbWinAdvServSearch
kbWin2000AdvServSP2 kbWin2000AdvServSP1
Version : :2000,2000 SP1,2000 SP2,5.0,7.0
Issue type : kbinfo
===================================================
=============================
open terminator
exec (@comando)
select @comando = 'kill '
fetch next from terminator into @spid
end
close terminator
deallocate terminator
set nocount off
Página 12 de 31
Nombre Descripción
Desactivar constraints y triggers rápidamente When loading data, nothing can be more frustrating than
having to deal with stubborn constraints and triggers. This is
especially true when you know your data is fine but the
constraints are too prohibitive for a mass initial load. Here's
a technique I use to disable the constraints and triggers
temporarily during a mass load.
To do this, we can use the sp_msforeachtable system
stored procedure to loop through each table and issue an
ALTER TABLE statement to dsable the constraint and
trigger. The ALL clause at the end of the command will
disable all constraints and triggers. There is no need to drop
referential integrity to load data. If you turn on NOCHECK,
constraints will not be checked. Here's the code to perform
this:
sp_msforeachtable "ALTER TABLE ? NOCHECK
CONSTRAINT all"
sp_msforeachtable "ALTER TABLE ? DISABLE TRIGGER
all"
To enable them back, you can reverse the function. Let's
get a little more creative this time. We'll explicitly set the
parameters and list each table before enabling them so we
can verify any errors easily.
sp_msforeachtable @command1="print '?'",
@command2="ALTER TABLE ? CHECK CONSTRAINT all"
sp_msforeachtable @command1="print '?'",
@command2="ALTER TABLE ? ENABLE TRIGGER all"
As I mentioned before, you never want to drop constraints
during development. Instead disable them temporarily until
Cambiar el propietario de un objeto de una base de EXEC sp_changeobjectowner 'authors', 'Corporate\GeorgeW'
Para ver los propietarios de las bases de datos select name,user_name(sid) from master..sysdatabases
Página 13 de 31
Nombre Descripción
Procedimiento almacenado para desconectar CREATE PROCEDURA USP_KILLUSERS @dbname
varchar(50) as
SET NOCOUNT ON
DECLARE @strSQL varchar(255)
PRINT 'Killing Users'
PRINT '----------------'
CREATE table #tmpUsers(
spid int,
eid int,
status varchar(30),
loginname varchar(50),
hostname varchar(50),
blk int,
dbname varchar(30))
INSET INTO #tmpUsers EXEC sp_who
DECLARE LoginCursos CURSOR
READ_ONLY
FOR SELECT spid, dbname FROM #tmpUsers WHERE
dbname = @dbname
DECLARE @spid varchar(10)
DECLARE @|dbname2 varchar(40)
OPEN LoginCursor CURSOR
READ_ONLY
FOR SELECT spid, dbname FROM #tmpUsers WHERE
dbname = @dbname
DECLARE @spid varchar(10)
DECLARE @dbname2 varchar(40)
OPEN LoginCursor
FETCH NEXT FROM LoginCursor INTO @spid, @dbname2
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@Fetch_status <> -2)
BEGIN
PRINT 'Killing ' + @spid
SET @strSQL = 'KILL ' + @spid
EXEC (@strSQL)
END
FETCH NEXT FROM LoginCursor INTO @spid,
@dbname2
END
CLOSE LoginCursor
DEALLOCATE LoginCursor
DROP table #tmpUsers
PRINT 'Done'
go
Para ejecutarlo:
USP_KILLUSERS 'Northwind'
Página 14 de 31
Nombre Descripción
Tipos de datos - BigInt: Puede almacenar números entre -
9.223.372.036.854.755.807 y 9.223.372.036.854.755.807.
Este tipo usa 8 bytes de almacenamiento.
- Int: Puede almacenar números entre -2.147.843.648 y
2.147.843.647. Este tipu usa 4 bytes de almacenamiento.
- SmallInt: Puede almacenar números entre -32.768 y
32.767. Este tipu usa 2 bytes de almacenamiento.
- TinyInt: Puede almacenar números entre 0 y 255. Este tipu
usa 1 byte de almacenamiento.
- Varchar(n)
- Char(n)
La diferencia entre varchar y char, es que varchar trunca
los espacios en blanco, así que un varchar(10) almacena
"Pepe" en 4 bytes. Sin embargo, el beneficio que obtiene en
espacio de almacenamiento, por lo general ecede en unos 8
bytes el acierto en el rendimiento. En otras palabras, para un
campo de caracteres menor de 8, use un campo char; para
un campo de caracteres superior a 8, use un varchar.
- Nvarchar: Se usa para almacenar datos Unicode. Ocupan
2 veces lo que un char y se ejecutan más lentamente.
- Text o image. Puenen almacenar hasta 2 gigabytes de
datos.
Longitud máxima de las tablas Una tabla no puede tener másd de 8060 caracteres de
ancho.
El único método para solucionar esto es dividir su tabla en
Campos text, ntext e image Los datos text, ntext e image por lo general no están
almacenados directamente en la página principal de la fila de
su tabla. En lugar de eso, la columna señala un lugar aparte
dentro de la base de datos donde se encuentra el campo
más grande. El apuntador que dirige la solicitud a las otras
páginas es de 16 bytes.
Puesto que este tipo de datos no es almacenado
directamente en la fila, no te restringe el límite de ancho de
la fila a 8Kb (8060 caracteres)
Para conocer el campo más largo de un campo SELECT Max (Len (CompanyName)) MaximunLength from
Customers
Ejemplo:
SELECT Headline, Lead
From Articles
GROUP BY Headline, Lead
HAVING count(*) > 1
Página 15 de 31
Nombre Descripción
Saber qué parámetros acepta un procedimiento sp_help <stored procedure name>
USE master
go
ALTER DATABASE tempdb MODIFY FILE (NAME =
tempdev, FILENAME = 'f:\tempdb.mdf')
go
ALTER DATABASE tempdb MODIFY FILE (NAME =
templog, FILENAME = 'f:\templog.ldf')
go
Página 16 de 31
Nombre Descripción
Cambiar el nivel de compatibilidad de una BBDD Hay veces que un comando no funciona porque el nivel de
compatibilidad de la base de datos está configurado por
debajo de 70. Por ejemplo, si ejecutas la siguiente consulta:
Por ejemplo:
CREATE View vw_ProductCategories as
SELECT dbo.Products.ProductName,
dbo.Categories.CategoryName,
dbo.Products.ProductID FROM
dbo.Categories INNER JOIN
dbo.Products ON dbo.Categories.CategoryID
=dbo.Products.CategoryID
ORDER BY dbo.Categories.CategoryName
Página 18 de 31
Nombre Descripción
Tablas del sistema (en la Master) - sysaltfiles: contiene una lista de los archivos que hay en
el servidor
- syscacheobjects: muestra cómo SQL Server está usando
su memoria caché
- syscharsets: designa qué conjuntos de caracteres y
órdenes de clasificación están disponibles en SQL Server.
- sysconfigures: contiene una entrada por cada confunto de
opciones de configuración en SQL Server. Estas opciones
son leídas por el procedimiento almacenado sp_configure.
Una vez que cambie la configuración en el servidor, esta
tabla es ajustada y no es transferida a la tabla
syscurconfigs hasta que se reinicie el servidor o se ejecute
el comando RECONFIGURE.
- syscurconfigs: es idéntica a la tabla sysconfigures. La
única diferencia es que la tabla syscorconfigs muestra qué
configuraciones está ejecutando actualemente el servidor ,
mientras la tabla sysconfigures muestra para qué ha sido
configurado el servidor una vez que el servidor es reiniciado
o cuando el comando RECONFIGURE es emitido. Sea que
deba reiniciar o emitir el commando RECONFIGURE, hágalo
basado en el indicador de estado
- sysdatabases: contiene una lista de las bases de datos
instaladas en su SQL Server.
- syslanguages: contiene una lista de idiomas instalados en
el SQL Server.
- syslockinfo: le permite dar un vistazo a los bloqueos
otorgador por el administrador de bloqueo del SQL Server.
Contiene información acerca de todos los bloqueos
otorgados, en espera y de conversión.
- syslogins: contiene una lista de los inicios de sesión
asignados al servidor.
- sysmessages: contiene la lista de los mensajes de error e
informativos disponibles en SQL Server. A través de
sp_addmessage puede agrefgar un mensaje nuevo en esta
tabla.
- sysoledbusers: contiene un registro por cada usuario,
utilizado por los servidores vinculados.
- sysperfinfo: contiene una lista de contadores de
rendimiento, utilizada para monitorear SQL Server en el
Monitor del sistema.
- sysprocesses: contiene una lista de losp rocesos del
sistema y de los usuarios que están ejecutándose
actualmente en elservidor. Usted también puede ver en esta
tabla cuántos recursos de sus sitema están siendo
ocupados por el proceso individual.
- sysremotelogins: contiene información acerca de los
ussuarios a los que se permite ejecutar procedimientos
almacenados remotos.
- sysservers: contine un registro para el servidor local así
como para cualquier servidor o servidores vinculados que
estén prarticipando en la duplicación. La mayoría de las
Página 19 de 31
Nombre Descripción
Tablas del sistema en todas las bases de datos - syscolumns: en esta tabla se genera una entrada para
cada columna de la base de datos. Estas entradas de hecho
incluyen columnas de las tablas del sistema.
- syscomments: es una tabla importante que contiene todos
los procedimientos almacenados, vistas, reglas,
desencadenadores, restricciones DEFAULT y restricciones
CHECK para una base de datos dada. Es importante no
editar nunca esta tabla directamente porque depende mucho
de la secuencia. Si usted elimina una entrada, todas las
demás que están vinculadas al procedimieno almacenado
eliminado dejarán de funcionar.
- sysconstraints: contiene una lista de las restricciones en
una base de datos.
- sysfilegroups: incluye una tabla para cada grupo e
archivos usado por su base de datos.
- sysfiles: contiene un registro por cada archivo de daos y
registros usado en una base de datos dada.
- sysforeignkeys: contiene informaicón para cualquier clave
foránea que pueda usar una tabla.
- sysfulltextcatalogs: enumera todosl os catálogos de texto
completo en una base de datos dada.
- sysindexes: contiene losíndices instalados en una tabla
dada.
- sysindexkeys: estipula qué índices están siendo utilizados
y por cuáles tablas.
- sysmembers: asigna los nombres de usuario a la función
de la base de datos
- sysobjects: es una de las más importantes del catálogo.
Contiene un registro por cada objeto de la base de datos.
- syspermissions: proporciona una matriz de permisos
asignados a los usuarios, grupos o funciones de una base
de datos dada. En la tabla sysprotects hay más información
acerca de los permisos.
- sysprotects: se extiende sobre la tabla syspermissions y
especifica qué tipo de permisos tiene el usuario.
- sysreferences: le muestra las relaciones entre las tablas.
- systypes: contiene una lista de los tipos de datos,
definidos por sistema y por usuario.
- sysusers: contiene una lista de usuarios y funciones en
Página 20 de 31
Nombre Descripción
Procedimientos almacenados extendidos - xp_availablemedia: enumera los discos disponibles para
leer y escribir datos.
- xp_cmdshell: Es de uso común para la ejecución de
programas con T-SQL. Si no desea que el procedimiento
genere ninguna salida, use el parámetro no_output
- xp_dirtree: Reporta todos los subdirectorios bajo el
directorio raíz especificado
- xp_enum_activescriptengines: Enumera todos los
lenguajes de secuencia de comandos instalados en el
servidor (por ejemplo: XML, vbscript Jscrip, etc).
- xp_enum_oldb_providers: Genera todos los proveedores
OLE DB instalados en el servidor.
- xp_enumcodepages: Enumera todas las páginas de
códigos instaladas en el servidor.
- xp_enumdsn: Genera una lista de los DSN (Data Source
Name, nombre de origen de datos) configurados en el
servidor.
- xp_enumerrorlogs: Genera una lista de los registros de
errores de SQL Server en el servidor, junto con sus tamaños
y fechas de creación.
- xp_enumgroups: eumera todos los grupos Windows que
hay en el servidor.
- xp_fileexist: determina si un archivo específico existe en
el directorio. También le puede decir si la variable
especificada es un directorio. Puede usar esto para
desencadenar ciertos suscesos. Por ejemplo, puede usar
este procedimiento para probar si existe un archivo antes de
lanzar un paquete DTS.
- xp_fixeddrives: Muestra los discos fijos que hay en el
servidor así como el espacio en magabytes disponible para
cada uno.
- xp_getfiledetails: Muestra información acerca del archivo
especificado, incluyendo la fecha de creación y el tamaño.
- xp_getnetname: Muestra el nombre del equipo SQL Server
al que está conectado
- xp_loginconfig: Enumera la configuración de seguridad e
inicio de sesión para SQL Server.
- xp_logevent: Registra sucesos en el Visualizador de
sucesos desde T-SQL. Para usar el procedimiento, usted
debe proporcionar un número de error, seguido por el
mensaje de error, y finalmente la gravedad. Las gravedades
disponibles son INFORMATIONAL, WARNING, o ERROR.
Los números de error definidos por usuario empiezan en
50.001.
- xp_logininfo: Produce información valiosa acerca de cuáles
usuarios de Windows tienen derecho a su SQL Serer y los
tipos de permisos con que cuentan.
- xp_ntsec_enumdomains: Indica el dominio del cual es
miembro su servidor Windows.
- xp_readerrorlog: Devuelve el contenido del registro de
errores actual.
- xp_regdeletekey: Le permite eliminar una clave desde su
registro. Sea muy cuidadoso al utilizarlo pues no le advertirá
antes de eliminar la clae completa. Para ejecutar el
procedimiento, use el parámetro @rootkey par aespecificar
la clave del registro raíz, y luego el parámegro @key para
designar la clave que desea eliminar.
- xp_regdeletevalue: También puede eliminar entradas de
datos individuales dentro de una clave de registro.
- xp_regenumvalues: enumera todas lsa entradas de datos
del registro y los valores en una clave dada.
- xp_regread: Lee una clave de registro individual para
determinar su existencia o leer una entrada de datos en la
Reducción del registro de transacciones en todas Reducción del registro de transacciones en todas las bases
de datos de un servidor:
Página 21 de 31
Nombre Descripción
Cambiar el registro de transacciones de unidad This tip is one of a series from SQL Server Magazine. For
additional tips, visit the SQL Server Tips and Tricks Center.
Finally, after you copy the files, you can use the sp_
attach_db stored procedure to reattach the data to SQL
Server:
GO
As
/***************************************************************
****/
--Name : sp_SQLSMTPMail
--Server : Generic
--Description : SQL smtp e-mail using CDOSYS, OLE
Automation and a
-- network smtp server; For SQL Servers running
on
-- windows 2000.
--
--Note : Be sure to set the default for @vcSMTPServer
above to
-- the company network smtp server or you will
have to
-- pass it in each time.
--
--Comments : Getting the network SMTP configured to
work properly
-- may require engaging your company network or
Set nocount on
-- Declare variables
Declare @iMessageObjId int
Declare @iHr int
Declare @iRtn int
Declare @iFileExists tinyint
Declare @vcCmd varchar(255)
Declare @vcQueryOutPath varchar(50)
Declare @dtDatetime datetime
Declare @vcErrMssg varchar(255)
Declare @vcAttachment varchar(1024)
Declare @iPos int
Declare @vcErrSource varchar(255)
Declare @vcErrDescription varchar(255)
-- Set the default SQL Server to the local SQL Server if one
Goto ErrMssg
End
-- Subject
EXEC @iHr = sp_OASetProperty @iMessageObjId, 'Subject',
@vcSubject
IF @iHr <> 0
Begin
Set @vcErrMssg = 'Error setting Message parameter
"Subject".'
Goto ErrMssg
End
-- From
EXEC @iHr = sp_OASetProperty @iMessageObjId, 'From',
@vcFrom
IF @iHr <> 0
Begin
Set @vcErrMssg = 'Error setting Message parameter
"From".'
Goto ErrMssg
End
-- CC
EXEC @iHr = sp_OASetProperty @iMessageObjId, 'CC',
@vcCC
IF @iHr <> 0
Begin
Set @vcErrMssg = 'Error setting Message parameter
"CC".'
Goto ErrMssg
End
-- BCC
EXEC @iHr = sp_OASetProperty @iMessageObjId, 'BCC',
@vcBCC
IF @iHr <> 0
Begin
Set @vcErrMssg = 'Error setting Message parameter
"BCC".'
Goto ErrMssg
End
Página 26 de 31
Nombre Descripción
-- DSNOptions
EXEC @iHr = sp_OASetProperty @iMessageObjId,
'DSNOptions', @vcDSNOptions
IF @iHr <> 0
Begin
Set @vcErrMssg = 'Error setting Message parameter
"DSNOptions".'
Goto ErrMssg
End
-- Sender
EXEC @iHr = sp_OASetProperty @iMessageObjId, 'Sender',
@vcSenderName
IF @iHr <> 0
Begin
Set @vcErrMssg = 'Error setting Message parameter
"Sender".'
Goto ErrMssg
End
-- Get the drive letter of the drive with the most free
space
-- Note: The OSQL output file name must be unique for
each call within the same session.
-- Apparently OSQL does not release its lock on the
first file created until the session ends.
-- Hence this alleviates a problem with queries from
multiple calls in a cursor or other loop.
Select @vcQueryOutPath = Drive + ':\TempQueryOut' +
ltrim(str(datepart(hh,getdate()))) +
ltrim(str(datepart(mi,getdate()))) +
ltrim(str(datepart(ss,getdate()))) +
ltrim(str(datepart(ms,getdate()))) +
'.txt'
from #fixeddrives
where FreeSpace = (select max(FreeSpace) from
#fixeddrives )
End
-- Execute xp_fileexist
Insert into #fileexists exec master.dbo.xp_fileexist
@vcQueryOutPath
End
End
-- TextBody
EXEC @iHr = sp_OASetProperty @iMessageObjId,
'TextBody', @vcBody
IF @iHr <> 0
Begin
Set @vcErrMssg = 'Error setting Message parameter
"TextBody".'
Goto ErrMssg
End
-- Sendusing
EXEC @iHr = sp_OASetProperty @iMessageObjId,
'Configuration.Fields("http://schemas.microsoft.com/cdo/con
figuration/sendusing").Value',
@cSendUsing
IF @iHr <> 0
Begin
Set @vcErrMssg = 'Error setting Message configuraton
field "sendusing".'
Goto ErrMssg
End
-- SMTPConnectionTimeout
EXEC @iHr = sp_OASetProperty @iMessageObjId,
'Configuration.Fields("http://schemas.microsoft.com/cdo/con
figuration/SMTPConnectionTimeout").Value',
@vcTimeout
IF @iHr <> 0
Begin
Set @vcErrMssg = 'Error setting Message configuraton
field "SMTPConnectionTimeout".'
Goto ErrMssg
End
-- SMTPServerPort
EXEC @iHr = sp_OASetProperty @iMessageObjId,
'Configuration.Fields("http://schemas.microsoft.com/cdo/con
figuration/SMTPServerPort").Value',
@vcPort
IF @iHr <> 0
Begin
Set @vcErrMssg = 'Error setting Message configuraton
Página 29 de 31
Nombre Descripción
field "SMTPServerPort".'
Goto ErrMssg
End
-- SMTPAuthenticate
EXEC @iHr = sp_OASetProperty @iMessageObjId,
'Configuration.Fields("http://schemas.microsoft.com/cdo/con
figuration/SMTPAuthenticate").Value',
@cAuthenticate
IF @iHr <> 0
Begin
Set @vcErrMssg = 'Error setting Message configuraton
field "SMTPAuthenticate".'
Goto ErrMssg
End
Goto ErrMssg
End
Cleanup:
-- Destroy the object and return.
EXEC @iHr = sp_OADestroy @iMessageObjId
--EXEC @iHr = sp_OAStop
Página 31 de 31