miércoles, 29 de junio de 2016

Lenguaje Transac




1. CONTENIDO

  • Definicion
Transact-SQL es una extensión del lenguaje SQL, propiedad de Microsoft y Sybase. La implementación de Microsoft funciona en los productos Microsoft SQL Server. En tanto, Sybase utiliza el lenguaje en su Adaptative Server Enterprise, el sucesor de Sybase SQL Server.

Para hacer a SQL más poderoso, le fueron agregados algunas características como:
-Mejora en las declaraciones DELETE y UPDATE.
-
Variables locales.
-Soporte de varias funciones para el procesamiento de cadenas, datos,matemática, etc.
-Un lenguaje de control de flujos.

Para el lenguaje de control de flujos utiliza palabras claves como BEGIN y END, BREAK, CONTINUE, GOTO, IF y ELSE, RETURN, WAITFOR y WHILE.

Para las variables locales utiliza DECLARE para declararlas y SET para proveerles un valor.

En tanto las mejoras en las declaraciones DELETE Y UPDATE se debe a que ambas permiten una cláusula FROM.

Los críticos de Transact-SQL dicen que las características  adicionales rompen la compatibilidad con el SQL estándar. También critican que lo que Transact-SQL hace es posible implementarse a través de los lenguajes de programación y 
SQL embebido.

              Comandos
SENTENCIAS SQL (DDL, DML, DCL Y TCL)

Ø  DATA DEFINITION LANGUAGE (DDL)

Se utilizan para definir la estructura de base de datos o esquema.
Es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de definición de las estructuras que almacenarán los datos así como de los procedimientos o funciones que permitan consultarlos.
Un Data Definition Language o Lenguaje de descripción de datos ( DDL ) es un lenguaje de programación para definir estructuras de datos .
El término DDL fue introducido por primera vez en relación con el modelo de base de datos CODASYL, donde el esquema de la base de datos ha sido escrito en un lenguaje de descripción de datos que describe los registros, los campos, y "conjuntos" que conforman el usuario modelo de datos.
Más tarde fue usado para referirse a un subconjunto de SQL, pero ahora se utiliza en un sentido genérico para referirse a cualquier lenguaje formal para describir datos o estructuras de información, como los esquemas XML.

CREATE - PARA CREAR OBJETOS EN LA BASE DE DATOS
ALTER - ALTERA LA ESTRUCTURA DE LA BASE DE DATOS
DROP - ELIMINA LOS OBJETOS DE LA BASE DE DATOS
TRUNCATE - ELIMINAR TODOS LOS REGISTROS DE UNA TABLA , INCLUYENDO TODOS LOS ESPACIOS ASIGNADOS A LOS REGISTROS SE ELIMINAN
COMMENT - AGREGAR COMENTARIOS AL DICCIONARIO DE DATOS
RENAME - CAMBIAR EL NOMBRE DE UN OBJETO


Ø  DATA MANIPULATION LANGUAGE (DML)

Se utilizan para la gestión de datos dentro de los objetos de esquema.
Es un idioma proporcionado por los sistemas gestores de bases de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o modificación de los datos contenidos en las Bases de Datos del Sistema Gestor de Bases de Datos. El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional. Otros ejemplos de DML son los usados por bases de datos IMS/DL1, CODASYL u otras.

SELECT - RECUPERAR DATOS DE LA BASE DE DATOS.
INSERT - INSERTAR DATOS EN UNA TABLA .
UPDATE - ACTUALIZACIONES DE DATOS EXISTENTES EN UNA TABLA.
DELETE - ELIMINA TODOS LOS REGISTROS DE UNA TABLA.
MERGE - OPERACIÓN UPSERT (INSERCIÓN O ACTUALIZACIÓN).
CALL - LLAMA A UN PL / SQL O SUBPROGRAMA JAVA.
EXPLAIN PLAN - EXPLICAR LA RUTA DE ACCESO A LOS DATOS.
LOCK TABLE - CONCURRENCIAS DE CONTROL.


Ø  DATA CONTROL LANGUAGE (DCL)

Un Lenguaje de Control de Datos (DCL por sus siglas en inglés: Data Control Language) es un lenguaje proporcionado por el Sistema de Gestión de Base de Datos que incluye una serie de comandos SQL que permiten al administrador controlar el acceso a los datos contenidos en la Base de Datos.
Algunos ejemplos de comandos incluidos en el DCL son los siguientes:
GRANT: Permite dar permisos a uno o varios usuarios o roles para realizar tareas determinadas.
REVOKE: Permite eliminar permisos que previamente se han concedido con GRANT.
Las tareas sobre las que se pueden conceder o denegar permisos son las siguientes:
CONNECT
SELECT
INSERT
UPDATE
DELETE
USAGE
En Oracle, la ejecución de un comando DCL implica un COMMIT de forma implícita. Sin embargo, en PostgreSQL, la ejecución de un comando DCL forma parte de una transacción, por lo que puede ser deshecha mediante el comando ROLLBACK.


Ø  CONTROL DE TRANSACCIÓN (TCL)

Es un lenguaje de programación y un subconjunto de SQL , que se utiliza para controlar el procesamiento de transacciones en una base de datos.
Una transacción es una unidad lógica de trabajo que comprende una o más sentencias SQL, por lo general un grupo de Data Manipulation Language (DML).
Ejemplos de comandos de TCL incluyen:
COMMIT - GUARDA EL TRABAJO REALIZADO.
SAVEPOINT - IDENTIFICA UN PUNTO EN UNA TRANSACCIÓN A LA QUE MÁS TARDE SEVPUEDE VOLVER.
ROLLBACK - RESTAURAR LA BASE DE DATOS A LA ORIGINAL, HASTA EL ÚLTIMO COMMIT.
SET TRANSACTION - CAMBIA LAS OPCIONES DE TRANSACCIÓN COMO NIVEL DE AISLAMIENTO Y QUÉ SEGMENTO DE CANCELACIÓN UTILIZA.


Ø  CFL

While
Con while aumentamos la familia de los bucles para el control de flujo de un programa, ya que ejecuta de forma continua un bloque de código mientras la condición de cabecera se cumpla. Al igual que pasaba con el bucle for, la condición se evalúa con cada repetición del bloque de código hasta que se deje de cumplir, continuando entonces con el código que haya después del bucle while.
Do…While
Terminamos los bucles con una modificación del bucle while en el que la condición se evalúa al final del bloque de código entre llaves. Por tanto, el bule do…while no deja de ser un bucle while que se va a ejecutar al menos una vez.
Break aborta cualquier instrucción de control de flujo vista hasta ahora. Cuando nuestro programa ejecuta, por ejemplo, un bucle for, y llegado a un punto necesita abandonarlo, sea por la razón que sea, incluiremos una sentencia break, y el programa continuará su ejecución justo después del bloque donde la hemos incluido.

Continue, por su parte, aborta la ejecución actual dentro de un bucle de control de flujo. A diferencia de break, el bucle no se abandona, sino que se seguirá ejecutando mientras la condición se cumpla.
  • Ejemplos
            El DCL 
·         Por ejemplo supongamos que tenemos una base de datos para las reservas de avión. Cuando un usuario pide reservar una plaza en un determinado vuelo, el sistema tiene que comprobar que queden plazas libres, si quedan plazas reservará la que quiera el usuario generando un nuevo billete y marcando la plaza como ocupada. Aquí tenemos un proceso que consta de dos operaciones de actualización de la base de datos (crear una nueva fila en la tabla de billetes y actualizar la plaza reservada en el vuelo, poniéndola como ocupada) estas dos operaciones se tienen que ejecutar o todas o ninguna, si después de crear el billete no se actualiza la plaza porque se cae el sistema, por ejemplo, la base de datos quedaría en un estado inconsistente ya que la plaza constaría como libre cuando realmente habría un billete emitido para esta plaza. En este caso el sistema tiene el mecanismo de transacciones para evitar este error. Las operaciones se incluyen las dos en una misma transacción y así el sistema sabe que las tiene que ejecutar las dos, si por lo que sea no se pueden ejecutar las dos, se encarga de deshacer los cambios que se hubiesen producido para no ejecutar ninguna.
·         Las instrucciones que gestionan las autorizaciones serán utilizadas normalmente por el administrador mientras que las otras, referentes a proceso de transacciones serán utilizadas también por los programadores.
·         No todos los sistemas disponen de ellas.

2. RESUMEN
 
·         Transact-SQL. El SQL es un lenguaje universal que se emplea en cualquier sistema gestor de bases de datos relacional. Tiene un estándar definido, a partir del cual cada sistema gestor ha desarrollado su versión propia. En SQL Server la versión de SQL que se utiliza se llama Transact-SQL.

3. SUMMARY
• Transact-SQL. SQL is a universal language that is used in any database management system relational database. It has a defined standard, from which each manager system has developed its own version. In SQL Server SQL version used it is called Transact-SQL.

4. RECOMENDACIONES

Ø  No use la cláusula into nombre de tabla (“SELECT… INTO”). Esto bloqueará mientras se ejecuta la consulta las tablas del sistema. En su lugar cree primero las tablas y luego re-escribe la sentencia como INSERT INTO tabla_name SELECT.
Ø  Si usa el operador UNION y existe la seguridad de que ambos select NO tienen registros duplicados, entonces es mejor usar UNION ALL, para evitar que implícitamente se haga uso del operador DISTINCT el cual puede requerir que se almacenen todos los datos de salida en una tabla temporal para que luego se reordenen y se filtren los datos duplicados, lo cual aumenta considerablemente el costo de la consulta.
 Ø  Como el optimizador de consultas de SQL Server suele seleccionar el mejor plan de ejecución para las consultas, se recomienda que solo los desarrolladores y administradores de bases de datos experimentados usen estas sugerencias y que lo hagan como último recurso.


5. CONCLUSIONES

Transact-SQL es fundamental para trabajar con SQL Server. Todas las aplicaciones que se comunican con SQL Server lo hacen enviando instrucciones Transact-SQL al servidor, independientemente de la interfaz de usuario de la aplicación.

6. APRECIACIÓN DEL EQUIPO
Para este trabajo de investigación fue sencillo ya que conté con material específicamente sobre el tema e investigue un poco más en Internet, espero te ayude.

7. GLOSARIO
Transact-SQL: Es una extensión del lenguaje SQL,

8. BIBLIOGRAFIA O LINKOGRAFIA
http://www.aulaclic.es/sqlserver/t_2_1.htm

Ver Diapositivas Aquí


miércoles, 22 de junio de 2016

Tablas y Tipos de Datos




1. CONTENIDO

  • Tipos de Datos
     
Tipo de dato
Sinónimos
Tamaño
Descripción
BINARY
VARBINARY
BINARY VARYING
BIT VARYING
1 byte por carácter
Se puede almacenar cualquier tipo de datos en un campo de este tipo. Los datos no se traducen (por ejemplo, a texto). La forma en que se introducen los datos en un campo binario indica cómo aparecerán al mostrarlos.
BIT
BOOLEAN
LOGICAL
LOGICAL1
YESNO
1 byte
Valores Sí y No, y campos que contienen solamente uno de dos valores.
TINYINT
INTEGER1
BYTE
1 byte
Un número entero entre 0 y 255.
COUNTER
AUTOINCREMENT
Se utiliza para campos contadores cuyo valor se incrementa automáticamente al crear un nuevo registro.
MONEY
CURRENCY
8 bytes
Un número entero comprendido entre
– 922.337.203.685.477,5808 y 922.337.203.685.477,5807.
DATETIME
DATE
TIME 
8 bytes
Una valor de fecha u hora entre los años 100 y 9999
UNIQUEIDENTIFIER
GUID
128 bits
Un número de identificación único utilizado con llamadas a procedimientos remotos.
DECIMAL
NUMERIC
DEC
17 bytes
Un tipo de datos numérico exacto con valores comprendidos entre 1028 - 1 y - 1028 - 1. Puede definir la precisión (1 - 28) y la escala (0 - precisión definida). La precisión y la escala predeterminadas son 18 y 0, respectivamente.
REAL
SINGLE
FLOAT4
IEEESINGLE
4 bytes
Un valor de coma flotante de precisión simple con un intervalo comprendido entre – 3,402823E38 y – 1,401298E-45 para valores negativos, y desde 1,401298E-45 a 3,402823E38 para valores positivos, y 0.
FLOAT
DOUBLE
FLOAT8
IEEEDOUBLE
NUMBER 
8 bytes
Un valor de coma flotante de precisión doble con un intervalo comprendido entre – 1,79769313486232E308 y – 4,94065645841247E-324 para valores negativos, y desde 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos, y 0.
SMALLINT
SHORT
INTEGER2
2 bytes
Un entero corto entre – 32.768 y 32.767.
INTEGER
LONG
INT
INTEGER4
4 bytes
Un entero largo entre – 2.147.483.648 y 2.147.483.647.
IMAGE
LONGBINARY
GENERAL
OLEOBJECT
Lo que se requiera
Desde cero hasta un máximo de 2.14 gigabytes.
Se utiliza para objetos OLE.
TEXT
LONGTEXT
LONGCHAR
MEMO
NOTE
NTEXT 
2 bytes por carácter. (Consulte las notas).
Desde cero hasta un máximo de 2.14 gigabytes.
CHAR
TEXT(n)
ALPHANUMERIC
CHARACTER
STRING
VARCHAR
CHARACTER VARYING
NCHAR
NATIONAL CHARACTER
NATIONAL CHAR
NATIONAL CHARACTER VARYING
NATIONAL CHAR VARYING 
2 bytes por carácter. (Consulte las notas).
Desde cero a 255 caracter
                            
  • Administración de Tablas 


En una ventana del Editor de consultas, escriba y ejecute el siguiente código para crear una tabla sencilla denominada Products. Las columnas de la tabla son ProductID, ProductName, Price yProductDescription. La columna ProductID  es la clave principal de la tabla.int, varchar(25), money y text son todos los tipos de datos. Solo las columnas Price y ProductionDescription pueden no tener datos cuando se inserta o cambia una fila. Esta instrucción contiene un elemento opcional (dbo.) denominado esquema.  El esquema es el objeto de base de datos propietario de la tabla. Si es un administrador, dbo es el esquema predeterminado.dbo hace referencia  al propietario de la base de datos.
  • Sintaxis:

CREATE TABLE dbo.Products
   (ProductID int PRIMARY KEY NOT NULL,    
    ProductName varchar(25) NOT NULL,
    Price money NULL,
    ProductDescription text NULL)
GO

Después de crear una tabla, puede cambiar muchas de las opciones que fueron definidas cuando se creó originalmente. Entre ellas figuran las siguientes:
·         Agregar, modificar o eliminar columnas. Por ejemplo, se puede cambiar el nombre, la longitud, el tipo de datos, la precisión, la escala y la nulabilidad de la columna, aunque hay algunas restricciones. Para obtener más información, vea Modificar las propiedades de una columna.
·         Si la tabla tiene particiones, se puede volver a crear las particiones, o bien se pueden agregar o eliminar particiones concretas. Para obtener más información, veaModificar tablas e índices con particiones y Transferir datos de forma eficaz con cambios de particiones.
·         Agregar o eliminar restricciones PRIMARY KEY y FOREIGN KEY.
·         Agregar o eliminar restricciones UNIQUE y CHECK, así como definiciones DEFAULT y objetos.
·         Agregar o eliminar una columna de identificadores mediante las propiedades IDENTITY o ROWGUIDCOL. Asimismo, es posible agregar o quitar la propiedad ROWGUIDCOL de una columna existente, aunque en una tabla solo puede haber una columna que tenga la propiedad ROWGUIDCOL.
·         Registrar una tabla y las columnas seleccionadas de una tabla para la indización de texto completo.

 Seguridad

Permisos

Se requiere el permiso ALTER en el esquema al que pertenece la tabla, el permiso CONTROL en la tabla o la pertenencia al rol fijo de base de datosdb_ddladmin.


Usar Transact-SQL

Para eliminar una tabla en el Editor de consultas

ü  En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
ü  En la barra de Estándar, haga clic en Nueva consulta.
ü  Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.
  • Restricciones de Columnas
Primary Key                                                                                                                                    
Las restricciones PRIMARY KEY identifican la columna o el conjunto de columnas cuyos valores identifican de forma exclusiva cada una de las filas de una tabla. Para obtener más información, vea Restricciones PRIMARY KEY.

CREATE TABLE part_sample
         (part_nmbr      int         PRIMARY KEY,
         part_name      char(30),
         part_weight      decimal(6,2),
         part_color      char(15) );

         Foreign Key
Se forma de una columna o la combinación de varias columnas de una tabla que sirve como enlace hacia otra tabla donde en esta última, dicho enlace son la o las columnas que forman laPRIMARY KEY. En la primera tabla donde creamos la llave foránea es posible que existan valores duplicados de la/las columnas que conforman la llave primaria de la segunda tabla, además las columnas involucradas en la llave foránea deben tener el mismo tipo de datos que la llave primaria de la segunda tabla.

CREATE TABLE order_part
      (order_nmbr      int,
      part_nmbr      int
         FOREIGN KEY REFERENCES part_sample(part_nmbr)
            ON DELETE NO ACTION,
      qty_ordered      int);
GO

           Check

Con este tipo de restricción, se especifica que los valores ingresados en la columna deben cumplir la regla o formula especificada. Por ejemplo:

CREATE TABLE nombreEsquema.nombreTabla
(
 nombreColumna1 INT    NULL,
 nombreColumna2 VARCHAR(100)  NOT NULL,
 nombreColumna3 NVARCHAR(200) NOT NULL,
 --VALORES POSITIVOS
 CONSTRAINT CH_nombreRestriccion CHECK (nombreColumna1>=0),
 -- SOLO VALORES IGUALES A 10 20 30 40
 CONSTRAINT CH_nombreRestriccion2 CHECK (nombreColumna1 IN (10,20,30,40)),
 --VALORES CONTENIDOS EN UN RANGO
 CONSTRAINT CH_nombreRestriccion3 CHECK (nombreColumna1>=1 AND nombreColumna1 <=30)
);

         Default             
Se puede decir que no es una restricción, ya que solo se ingresa un valor en caso de que ninguno otro sea especificado. Si una columna permite NULL y el valor a insertar no se especifica, se puede sustituir con un valor predeterminado.

CREATE TABLE nombreTabla
(
 nombreColumna1 INT    NULL CONSTRAINT DF_nombreRestriccion DEFAULT(0),
 nombreColumna2 VARCHAR(100)  NOT NULL,
 nombreColumna3 NVARCHAR(200) NOT NULL,
);

         Unique
 Este tipo de restricción es muy parecida a PRIMARY KEY,  las diferencias son las siguientes:
También genera un índice automáticamente pero es de tipo de NON CLUSTERED.
La tabla puede tener más de una restricción de tipo UNIQUE.
Si puede aceptar NULL, pero solo una fila puede contenerlo ya que como su nombre lo indica, es de tipo UNIQUE o único. 

CREATE TABLE nombreEsquema.nombreTabla
(
 nombreColumna1 INT    NULL,
 nombreColumna2 VARCHAR(100)  NOT NULL,
 nombreColumna3 NVARCHAR(200) NOT NULL,
 CONSTRAINT UQ_nombreRestriccion UNIQUE( nombreColumna1 ),
 CONSTRAINT UQ_nombreRestriccion2 UNIQUE( nombreColumna2 ),
 CONSTRAINT UQ_nombreRestriccion3 UNIQUE( nombreColumna1,nombreColumna2 )
 )
  • Ejemplos
        Creamos la base de datos 

CREATE DATABASE empresa

Creamos la tabla Personas

CREATE TABLE dbo.Personas
(
P_id int PRIMARY KEY IDENTITY,
Nombre nchar(20) NOT NULL,
Apellidos nchar(30) NOT NULL,
Direccion nchar(40) NOT NULL,
Ciudad nchar(10) NOT NULL
)
GO

Insertamos algunos registros:

INSERT INTO Personas
VALUES ('Marco Antonio','Trejo Lemus','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Martha Beatriz','Trejo Lemus','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Juana Elvira','Trejo Lemus','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Nora Zulma','Trejo Lemus','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Laura Lucero','Sobrevilla Trejo','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Maria de la luz','Trejo Campos','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Trinidad','Trejo Bautista','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Marcel Abisag','Sobrevilla Trejo','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Jose Abraham','Sobrevilla Trejo','Calle E 822','Tampico')
INSERT INTO Personas
VALUES ('Samuel Salomon','Olmeda Trejo','Calle E 822','Tampico')

Muchas de las acciones que necesitas realizar en una base de datos se hacen con sentencias SQL

Seleccionamos todos los registros de la tabla

Las siguiente sentencia seleccionara todos los registros de la tabla "Personas" :

SELECT * FROM Personas

Abajo esta un ejemplo del resultado de la sentencia a la tabla llamada "Personas":



2. RESUMEN
 El proveedor OLE DB de SQL Server Native Client expone la función ITableDefinition::CreateTable, lo que permite a los consumidores crear tablas de SQL Server. Los consumidores utilizan CreateTable para crear tablas permanentes denominadas por el consumidor y tablas permanentes o temporales con nombres únicos generados por el proveedor OLE DB de SQL Server Native Client.
Cuando el consumidor llama a ITableDefinition::CreateTable, si el valor de la propiedad DBPROP_TBL_TEMPTABLE es VARIANT_TRUE, el proveedor OLE DB de SQL Server Native Client genera un nombre de tabla temporal del consumidor. El consumidor establece el parámetro pTableID del método CreateTable en NULL. Las tablas temporales con nombres generados por el proveedor OLE DB de SQL Server Native Client no aparecen en el conjunto de filas TABLES, pero son accesibles a través de la interfaz IOpenRowset.                        
Cuando los consumidores especifican el nombre de tabla en el miembro pwszName de la unión uName en el parámetro pTableID, el proveedor OLE DB de SQL Server Native Client crea una tabla de SQL Server con ese nombre. Se aplican las restricciones de denominación de tabla de SQL Server y el nombre de tabla puede indicar una tabla permanente o una tabla temporal local o global. Para obtener más información, vea CREATE TABLE. El parámetro ppTableID puede ser NULL.
El proveedor OLE DB de SQL Server Native Client puede generar los nombres de tablas permanentes o temporales. Cuando el consumidor establece el parámetro pTableID en NULL y establece ppTableID para que señale a un DBID válido *, el proveedor OLE DB de SQL Server Native Client devuelve el nombre generado de la tabla en el miembropwszName de la unión uName del DBID al que el valor de ppTableID señala. Para crear una tabla denominada por el proveedor OLE DB de SQL Server Native Client, el consumidor incluye la propiedad de tabla DBPROP_TBL_TEMPTABLE de OLE DB en un conjunto de propiedades de tabla al que se hace referencia en el parámetro rgPropertySets. Las tablas temporales denominadas por el proveedor OLE DB de SQL Server Native Client son locales.

3. SUMMARY
The OLE DB provider SQL Server Native Client exposes the ITableDefinition :: CreateTable function, which allows consumers to create tables in SQL Server. Consumers use CreateTable to create permanent tables named by the consumer and permanent or temporary tables with unique names generated by the OLE DB provider SQL Server Native Client.
When the consumer calls ITableDefinition :: CreateTable, if the value of the property is VARIANT_TRUE DBPROP_TBL_TEMPTABLE, the OLE DB provider SQL Server Native Client generates a temporary table name consumer. The consumer sets the pTableID CreateTable method parameter to NULL. Temporary tables with names generated by the OLE DB provider SQL Server Native Client does not appear in the TABLES rowset, but are accessible through the IOpenRowset interface.
When consumers specify the table name in the pwszName member of the union in the pTableID uname parameter, the OLE DB provider SQL Server Native Client creates a SQL Server table with that name. naming restrictions SQL Server table and the table name may indicate a permanent table or a local or global temporary table apply. For more information, see CREATE TABLE. The ppTableID parameter can be NULL.
The OLE DB provider SQL Server Native Client can generate the names of permanent or temporary tables. When the consumer sets the pTableID parameter to NULL and sets ppTableID to point to a valid DBID *, the OLE DB provider SQL Server Native Client returns the generated table name in the miembropwszName of the uname union DBID to which the value of ppTableID says. To create a table called by the OLE DB provider SQL Server Native Client, the consumer includes table property DBPROP_TBL_TEMPTABLE OLE DB in a set of table properties referred to in rgPropertySets parameter. Temporary tables called by the OLE DB provider SQL Server Native Client are local.                   

4. RECOMENDACIONES
Piénselo bien antes de eliminar una tabla. Si las consultas, las vistas, las funciones definidas por el usuario, los procedimientos almacenados o los programas existentes hacen referencia a la tabla, la eliminación de la tabla hará que estos objetos dejen de ser válidos.
5. CONCLUSIONES
 Para saber más a fondo todo sobre Tablas y Tipos de Datos es necesario saber lo básico que es y cómo funciona Tablas y Tipos de Datos, entendiendo eso podremos saber cómo utilizarla.

6. APRECIACIÓN DEL EQUIPO
Para este trabajo de investigación fue sencillo ya que conté con material específicamente sobre el tema e investigue un poco más en Internet, espero te ayude.

7. GLOSARIO O TÉRMINOS              

FOREIGN KEY: Una clave externa (FK) es una columna o combinación de columnas que se utiliza para establecer y exigir un vínculo entre los datos de dos tablas. Puede crear una clave externa mediante la definición de una restricción FOREIGN KEY cuando cree o modifique una tabla.

8. BIBLIOGRAFIA O LINKOGRAFIA

http://www.aulaclic.es/sql/a_8_1_1.htm