J'ai besoin de créer une table à la volée dans le programme C# .net. La tâche consiste à exporter le fichier Excel vers la base de données SQL. Comment écrire une procédure de stockage pour créer une table si le nom de la colonne et le nom de la table sont passés en tant que paramètres? J'ai essayé d'écrire après SP.Création d'une table dans SQL2005 via le programme .net
ALTER PROCEDURE dbo.CreateTempTable
@Param1 VarChar(50),
@Param2 VarChar(50),
@Param3 VarChar(50),
@Param4 VarChar(50)
AS
if exists(select * from sys.objects where object_id = OBJECT_ID('[dbo].[Temp]') AND type='U')
begin
Drop Table [dbo].[Temp]
end
Create Table [dbo].[Temp]([@CountryID] [int],
[@Param1] [VarChar](150),
[@Param2] [DateTime],
[@Param3] [VarChar](50),
[@Param4] [VarChar](50));
RETURN
Pendant l'exécution si je donne comme entrée
@Param1 - 'CountryId'
@Param2 - 'CountryName'
@Param3 - 'CreateDate'
@Param4 - 'CreatedBy'
La colonne créée comme @ Param1, @ Param2, @ Param3, @ Param4 au lieu de CountryId ... etc.
Merci pour votre suggestion. J'ai utilisé la requête de chaîne et fonctionne bien. Je suis maintenant capable de passer n'importe quel nombre de colonnes, et peut même définir le type de données. – ihcarp