0
votes

Comment faire une requête Remplacer la colonne si elle existe à l'aide de la requête SQL-Server

J'ai une requête comme ci-dessous: xxx pré>

donc tout ce dont j'ai besoin que je souhaite remplacer esn_umts_sho_relation_key code> colonne si ... p> Comme je l'ai eu cette erreur: p> xxx pré>

Je suis fatigué d'utiliser le code ci-dessous, mais ce n'est pas du travail: p>

Incorrect syntax near the keyword 'alter'.
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near ')'


8 commentaires

Bonjour, avez-vous une alternative si cela ne fonctionne pas (l'erreur est lancée)? Vous pouvez essayer d'essayer un bloc de capture en SQL: docs.microsoft.com/en-us/sql/t-sql/language-elements/.../a>


De plus, puis-je demander pourquoi vous devez insérer une colonne dans une table s'il y a une chance qu'il existe? Vous migrez d'une base de données à d'autres?


@Omkar look je vais dicuss toi tout mon cas ... Je ne fais que créer une base de données basée sur des fichiers Excel ... Après cela, je fais visualiser la base de données après avoir créé et créer des scripts à l'aide de Python, Pandas (fonction) et certains Requêtes, donc chaque fois que je pousse ces excels sur les fichiers SQL i remplacez toutes les tables, et si j'ajoute ajouter d'autres colonnes afin que je remplace les anciennes colonnes avec le nouvelle colonne avec les nouvelles valeurs, car cette requête est l'une de mes questions


@Omkar en tant que fichier Excels a beaucoup de données car il y a une limitation dans le fichier Excel, si je visualisez le fichier Excel directement, je vais obtenir des erreurs, donc je dois appuyer toutes les données que j'ai à la base de données et commencer à visualiser à partir de la fenêtre. base de données au lieu du fichier Excel .. Donc, chaque fois que j'importe toutes les données vers le fichier Excel, je souhaite le remplacer par les anciennes données. C'est pourquoi j'ai besoin de remplacer la table avec la nouvelle table à utiliser nouvelles valeurs dans l'onglet; e mais il faut avoir les mêmes colonnes à chaque fois en utilisant ce processus


Si vous écrivez simplement toutes les données, laissez tomber les tables. Vous aurez besoin de plus de temps pour vérifier si les données existent, sinon insérez, vs simplement recréer la table à nouveau.


En outre, je vous suggérerais que vous n'écrivez plus et encore à partir de zéro, mais au lieu d'importer les données dans Excel et de faire tout cela manuellement, déterminez un moyen d'obtenir les données de la source de l'Excel et de remplir le DB temps réel. Il vous automatisera les choses pour vous et facilitera votre vie.


@Omkar c'est ce que je recherche, je souhaite créer une requête en aidant Python Pandas qui goutte toutes les tables de la base de données et commencez à exécuter le script que j'ai créé cette requête Supprimer toutes les colonnes "EXEC SP_MSFOREACHTABLE @ Command1 =" Drop Table? mais n'a pas fonctionné ...


Laissez-nous Continuez cette discussion en chat .


3 Réponses :


2
votes
IF COL_LENGTH('TableName', 'ColumnName') IS NOT NULL
BEGIN
    -- Column Exists
    -- here you can put your cond...
END


IF COL_LENGTH('[toolDB].[dbo].[esn_sho]', 'esn_umts_sho_relation_key') IS NOT NULL
BEGIN
    -- Column Exists
    alter table [toolDB].[dbo].[esn_sho] add esn_umts_sho_relation_key as Convert(nvarchar(50),[utrancell])+'_'+Convert(nvarchar(50),[utranrelation])---Put your condition in proper way...
END

0 commentaires

1
votes
IF EXISTS(SELECT * FROM DatabaseName  where ColumnName = @YourParameter)
BEGIN
You Can Write Alter Query Here
END
ELSE
BEGIN
You Can Set Here AN Else Condition/Optional
END

0 commentaires

1
votes

Pour résoudre ce problème particulier, vous pouvez utiliser les tables système. Essayez ceci xxx

Cela vous donnera les colonnes de votre table s'il existe. Vous pouvez utiliser cela pour prendre votre décision sur ce que vous feriez s'il existe / n'existe pas.


0 commentaires