Share via


Crear objetos de SQL Server en código administrado

Normalmente, para definir los objetos de base de datos, se usa el lenguaje de programación Transact-SQL. Sin embargo, también se pueden usar los lenguajes de .NET Framework para definir objetos de base de datos tales como procedimientos almacenados y desencadenadores, así como para recuperar y actualizar los datos de las bases de datos SQL Server. Estos objetos se conocen a menudo como objetos de Common Language Runtime de SQL Server u objetos CLR de SQL.

Para crear un objeto de base de datos, se crea un proyecto de SQL Server, se agregan los elementos necesarios al proyecto y se agrega código a esos elementos. A continuación, se compila el proyecto en un ensamblado y se implementa en SQL Server.

Nota

De forma predeterminada, la característica de integración de Common Language Runtime (CLR) está desactivada en SQL Server. Para usar elementos de proyecto CLR de SQL, se debe habilitar la integración con CLR. Con este fin, se usa la opción clr enabled del procedimiento almacenado sp_configure. Para obtener más información, vea el tema clr enabled (opción) en el sitio web de Microsoft.

Generar, implementar y depurar

Cuando se genera el proyecto, se compila en un ensamblado que se puede implementar en la base de datos a la que se hace referencia en el proyecto y depurar.

Nota

Como alternativa a la acción de generar, implementar y depurar en tres pasos independientes, se puede utilizar el comando Iniciar (F5) o el comando Iniciar sin depurar (CTRL+F5) para generar el ensamblado, implementarlo en la base de datos y depurar el objeto de base de datos. Un proyecto de base de datos CLR de SQL se debe establecer como proyecto de inicio si se desea usar F5 o CTRL+F5. Para obtener más información, vea Cómo: Establecer proyectos de inicio.

Existe la opción de agregar las instrucciones Transact-SQL a PreDeployScript.sql y PostDeployScript.sql. Quizás sería conveniente si es necesario realizar acciones en la base de datos antes o después de implementar el proyecto de base de datos CLR de SQL.

Para poder depurar el objeto de base de datos, se debe agregar código Transact-SQL al script Test.sql, o bien se puede agregar el mismo código Transact-SQL a una instancia del editor de Transact-SQL que está conectado a la base de datos en la que se implementó el proyecto. El script es importante para la depuración, ya que realiza en la base de datos las acciones necesarias para iniciar y probar el objeto de base de datos. Si el proyecto de base de datos CLR de SQL contiene más de un objeto de base de datos, el script debería incluir código Transact-SQL para ensayar cada objeto de base de datos que se desea depurar.

Este requisito del script de depuración es diferente para un proyecto que crea y ejecuta un programa independiente, como un proyecto de Windows Forms. Esto se debe a que los objetos de base de datos se ejecutan solamente como respuesta a acciones o llamadas de la base de datos. Por ejemplo, se puede activar un desencadenador cuando se inserta una nueva fila en una tabla. Por consiguiente, el script debe insertar una nueva fila en una tabla para activar el desencadenador. Los resultados del desencadenador se muestran en la Ventana Resultados en Visual Studio para poder determinar si el desencadenador funciona correctamente.

Nota importanteImportante

Debe tener los permisos adecuados para implementar o depurar un ensamblado de SQL CLR. Para obtener más información, vea Permisos necesarios para las características de base de datos de Visual Studio.

Encontrará ejemplos de código para cada tipo de objeto de base de datos en los temas relativos a esos tipos.

Depurar el objeto de base de datos

Cuando se depura un objeto de base de datos, se genera el ensamblado, se implementa en la base de datos y se depura. Cuando se depura un objeto de base de datos que se ha generado e implementado previamente, el ensamblado se genera de nuevo sólo si el proyecto ha cambiado desde que fue generado anteriormente. El ensamblado siempre se elimina de la base de datos y se copia de nuevo. Para obtener más información, vea Depurar los objetos de base de datos que usan código administrado (Depuración SQL CLR).

Para habilitar la depuración remota

  1. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto CLR de SQL para el que desea habilitar la depuración remota y haga clic en Propiedades.

  2. Haga clic en la pestaña Implementar.

  3. Seleccione Implementar código.

  4. En el menú Archivo, haga clic en Guardar los elementos seleccionados.

Para depurar el objeto de base de datos

  1. En el Explorador de soluciones, haga clic en la solución.

  2. En el menú Depurar, haga clic en Iniciar.

  3. Para ver los resultados, en la ventana Resultados, seleccione la opción Resultado de base de datos de la lista Mostrar resultados desde.

Tareas comunes

Tareas comunes

Contenido adicional

Obtenga más información sobre proyectos de base de datos CLR de SQL: Lectura sobre las ventajas de los objetos de base de datos de.net framework para SQL Server con código administrado. El código administrado tiene varias ventajas si se compara con Transact-SQL.

Obtenga la práctica con manecillas: Siga el tutorial para familiarizarse con cómo crear, implementar y probar un proyecto que define un procedimiento almacenado con código administrado.

Crear un proyecto de base de datos CLR de SQL: Cree un proyecto de Visual Basic o Visual C# que contienen las definiciones de los objetos de base de datos que desea definir.

Agregar elementos al proyecto de base de datos CLR de SQL: La primera vez que cree un proyecto de SQL Server contiene sólo las referencias e información de ensamblado. Para crear objetos de base de datos, debe agregar elementos al proyecto y, a continuación, agregar código a los elementos. Puede agregar procedimientos almacenados, agregados, desencadenadores, funciones definidas por el usuario y tipos definidos por el usuario. Se debe aplicar un atributo a cada proyecto SQL Server y a cada objeto que contiene.

Se pueden definir varios objetos en un proyecto. Podría decidir usar varios proyectos si los objetos deben actualizarse de forma independiente o si no todos los objetos se usan en todas las bases de datos en las que se va a implementar el ensamblado resultante.

Implementar el ensamblado a SQL Server y pruébelo: Después de crear el proyecto, agregar elementos y agregue el código a esos elementos, debe implementar el ensamblado resultante a SQL Server para poder utilizar los objetos definidos. Si el proyecto de SQL Server contiene una referencia a uno o varios objetos de otro proyecto de SQL Server, no puede usar el comando Deploy del primer proyecto para implementar el segundo proyecto (al que se hace referencia). Después de implementar el ensamblado, puede realizar algunas pruebas simples ejecutando un script de prueba.

Objetos de base de datos debugging deployed .NET Framework: Si el objeto de base de datos no funciona según lo previsto, puede depurar ese objeto para identificar y corregir cualquier defecto de código.

Referencia

  • System.Data
    Describe el espacio de nombres System.Data y proporciona una tabla de clases importantes.

  • System.Data.Sql
    Describe el espacio de nombres System.Data.Sql y proporciona una tabla de clases importantes.

  • System.Data.SqlTypes
    El espacio de nombres System.Data.SqlTypes proporciona clases para tipos de datos nativos de SQL Server 2005.

  • Microsoft.SqlServer.Server
    Describe el espacio de nombres Microsoft.SqlServer.Server y proporciona una tabla de clases importantes.

Escenarios relacionados

  • Bases de datos de convertir en un entorno de equipo objetos de base de datos de ese marco de reference.NET: Puede utilizar las características adicionales de Visual Studio para reducir los riesgos y para ayudar a acelerar el desarrollo de aplicaciones de base de datos en un entorno de equipo. Puede definir el esquema de base de datos en un proyecto de base de datos, colocar sus proyectos bajo control de versiones y crear pruebas unitarias de base de datos para comprobar que el comportamiento es el previsto.