Est-il possible d'écrire une procédure stockée qui fonctionne avec un nombre variable de paramètres? (Dans SQL Server 2005)Procédure stockée SQL Server
Répondre
Oui, vous pouvez écrire une procédure stockée dans C# ou VB.NET et l'inclure en tant que procédure stockée SQLCLR.
Une méthode C# peut accepter un paramètre params
de longueur variable.
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
public partial class StoredProcedures
{
[SqlProcedure()]
public static void InsertSomeValues(SqlString currencyCode,
SqlString name,
params object[] args)
{
using (SqlConnection conn = new SqlConnection("context connection=true"))
{
...... do whatever you need to do here........
}
}
}
Le CLR SQL - l'inclusion du moteur d'exécution .NET dans SQL Server - a été introduit avec SQL Server 2005. Voir la MSDN docs pour plus de détails.
Oui, situé juste à une valeur par défaut:
CREATE PROCEDURE SomeProc
@SomeParam int,
@SomeParam2 varchar(20) = 'Test Text'
AS
...
Vous pouvez alors exécuter comme:
EXEC SomeProc 1
Oui, cela est possible. Quand j'en avais besoin, j'ai utilisé Arrays and Lists in SQL Server. Il vous guidera à travers les détails de quelques approches différentes.
Certaines méthodes ..
par défaut des valeurs Table des variables magasin CLR procédures chaînes délimitées
Une façon de le faire est en utilisant XML:
CREATE PROC dbo.GetOrderList (
@OrderList varchar(max)
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @DocHandle int
DECLARE @TBL TABLE (
paramname varchar(50),
paramvalue varchar(50)
)
EXEC sp_xml_preparedocument @DocHandle OUTPUT, @OrderList
INSERT INTO @TBL (
paramname,
paramvalue
)
SELECT
paramname,
paramvalue
FROM OPENXML (@DocHandle, '/ROOT/param', 1) WITH (
paramname,
paramvalue
)
EXEC sp_xml_removedocument @DocHandle
END
GO
GRANT EXEC ON dbo.GetOrderList TO public
GO
Ensuite, votre xml regarderait comme ceci:
<root>
<param>
<paramname>thisparam</paramname>
<paramvalue>1</paramvalue>
</param>
</root>
YIKES! SQL Server 2005 a considérablement amélioré le support de XQuery - jetez ces vieilles méthodes OPENXML merdiques et utilisez les méthodes (xml) .nodes, (xml) .value, (xml) .query à la place !! –
- 1. Procédure stockée SQL Server 2008
- 2. Dynamic SQL Server procédure stockée
- 3. signifie SQL Server procédure stockée
- 4. Asp.net MVC avec SQL Server procédure stockée
- 5. SQL Server 2005 requête XML procédure stockée
- 6. Quand une procédure stockée recompiler? (Sql Server)
- 7. SQL Server - SELECT de la procédure stockée
- 8. dynamique procédure stockée dans Sql Server 2005
- 9. code optimize SQL Server procédure stockée
- 10. Procédure stockée dans SQL Server (distinct)?
- 11. SQL Server procédure stockée avec CHAR parm
- 12. Procédure stockée SQL Server 2005 Asnyc
- 13. SQL Server - procédure stockée devient soudainement lente
- 14. Procédure stockée Réplication ou copie (SQL Server)
- 15. SQL Server 2005 procédure stockée Dépendances
- 16. T-SQL SQL Server - Procédure stockée avec le paramètre
- 17. Procédure stockée SQL Question
- 18. procédure stockée C# SQL
- 19. serveur Sql procédure stockée
- 20. Problème de procédure stockée SQL Server appelant une autre procédure stockée
- 21. Travail SQL et procédure stockée
- 22. Sql server Stored Procédure
- 23. Procédure stockée SQL Server sensible à la casse?
- 24. SQL Server - Test du résultat d'une procédure stockée
- 25. Procédure stockée dans SQL Server (trié par desc)?
- 26. Erreur de capture SQL Server de la procédure stockée étendue
- 27. procédure stockée dans le planificateur dans SQL Server 2005
- 28. procédure stockée à l'intérieur Créer Trigger dans SQL Server
- 29. SQL Server: aide avec une procédure stockée simple?
- 30. Débogage d'une procédure stockée dans SQL Server 2008
Merci pour votre solution, il a résolu mon problème – Mada