Todo lo que he leído dice que al hacer un procedimiento almacenado administrado, haga clic con el botón derecho en Visual Studio y elija implementar. Eso funciona bien, pero ¿qué sucede si quiero implementarlo fuera de Visual Studio en varias ubicaciones diferentes? Traté de crear el ensamblado con el dll, el proyecto construido en SQL, y mientras agregaba el ensamblado, no creó los procedimientos fuera del ensamblaje. ¿Alguien ha descubierto cómo hacer esto en SQL directamente, sin usar Visual Studio?¿Cómo implemento un procedimiento almacenado administrado sin usar Visual Studio?
Respuesta
Copie el archivo DLL de conjunto en la unidad local en sus diversos servidores. A continuación, registrar su montaje con la base de datos:
create assembly [YOUR_ASSEMBLY]
from '(PATH_TO_DLL)'
... a continuación, crear una función de referencia al método público apropiado en el archivo DLL:
create proc [YOUR_FUNCTION]
as
external name [YOUR_ASSEMBLY].[NAME_SPACE].[YOUR_METHOD]
Asegúrese de utilizar los [corchetes, especialmente alrededor de la NAME_SPACE. Los espacios de nombre pueden tener cualquier número de puntos, pero los identificadores de SQL no pueden, a menos que las partes estén explícitamente separadas por corchetes. Esta fue una fuente de muchos dolores de cabeza cuando estaba usando SQL CLR por primera vez.
Para ser claros, [YOUR_ASSEMBLY] es el nombre que definió en SQL; [NAME_SPACE] es el espacio de nombres de .NET dentro de la DLL donde se puede encontrar su método; y [YOUR_METHOD] es simplemente el nombre del método dentro de ese espacio de nombres.
Para añadir algo más de detalle/aclaración a anwser @ de kcrumley arriba:
[NAME_SPACE] es el completo nombre del tipo de y no sólo el espacio de nombres
- es decir, si su clase se llama StoredProcedures
en un espacio de nombres de My.Name.Space
, debe usar [My.Name.Space.StoredProcedures]
para la parte [NAME_SPACE].
Si los procedimientos almacenados administrados pertenecen a una clase sin un espacio de nombres definido, solo use el nombre de clase simple (por ejemplo, [StoredProcedures]
).
También tuve problemas para tratar de encontrar la manera de agregar un procedimiento con argumentos/parámetros. Así que aquí está una muestra de cualquier otra persona tratando de hacerlo:
CREATE PROCEDURE [YOUR_FUNCTION]
(
@parameter1 int,
@parameter2 nvarchar
)
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [YOUR_ASSEMBLY].[StoredProcedures].[YOUR_FUNCTION]
- 1. Cómo llamar a un procedimiento almacenado (con parámetros) desde otro procedimiento almacenado sin tabla temporal
- 2. Cómo llamar a un procedimiento almacenado desde otro procedimiento almacenado?
- 3. ¿Cómo usar un valor de un procedimiento almacenado en otro?
- 4. Cómo depurar un BHO administrado desde Visual Studio 2010
- 5. ¿Cómo programar un procedimiento almacenado?
- 6. Cómo guardar un procedimiento almacenado?
- 7. Ejecutar un procedimiento almacenado dentro de un procedimiento almacenado
- 8. ¿Cómo desactivo los resultados de la consulta al ejecutar un procedimiento almacenado desde un procedimiento almacenado?
- 9. ¿Cómo devuelvo XML de un procedimiento almacenado?
- 10. Procedimiento almacenado al ejecutar otro procedimiento almacenado
- 11. ¿Puedo usar mstest.exe sin instalar Visual Studio?
- 12. Genera archivos .webtest sin usar Visual Studio
- 13. ¿Cómo implemento intellisense para mi idioma en Visual Studio?
- 14. Cómo escribir asignaciones para un procedimiento almacenado
- 15. Usar el cursor en un bucle de un procedimiento almacenado
- 16. hibernar y procedimiento almacenado
- 17. Usar la base de datos dentro de un procedimiento almacenado
- 18. Cómo usar Scrum y Visual Studio sin Team System
- 19. ¿Cómo suprimo los resultados de un procedimiento almacenado dentro de un procedimiento almacenado?
- 20. ¿Cómo se puede usar Wcf Test Client sin Visual Studio?
- 21. ¿Cómo ejecutar un procedimiento almacenado de Oracle?
- 22. ¿Cómo editas un procedimiento almacenado en MySQL?
- 23. ¿Cómo implementar un procedimiento almacenado condicional Upsert?
- 24. ¿Cómo elimino un procedimiento almacenado en postgresql?
- 25. ¿Cómo selecciono un procedimiento almacenado en Sybase?
- 26. ¿Cómo verificar si existe un procedimiento almacenado?
- 27. Recuperar el esquema de los campos en Visual Studio del procedimiento almacenado que usa tablas temporales
- 28. ¿Debo usar sp_executesql o EXEC para ejecutar un procedimiento almacenado?
- 29. ¿Usar la función como parámetro al ejecutar un procedimiento almacenado?
- 30. Llamar a un procedimiento almacenado en un procedimiento almacenado en MySQL
me encontré [esto] (https://msdn.microsoft.com/en-us/library/ms254956 (v = VS.90) .aspx) ser un recurso útil para lograr todo desde la línea de comandos – user2426679