10
votes

Ajout de colonne entre deux autres colonnes de SQL Server

Pouvez-vous ajouter une colonne à une table l'insérant entre deux colonnes existantes dans SQL Server sans déposer et recréer la table?


2 commentaires

Voir aussi Stackoverflow. com / questions / 1610 / ... et Stackoverflow.com/Questtions/4402312/...


Prenez la conception de table et faites glisser la colonne en conséquence


7 Réponses :


7
votes

La réponse simple est non. Y a-t-il une raison pour laquelle la commande de colonne est importante pour vous?


1 commentaires

Pas vraiment, je traversais un tutoriel qui m'a demandé de le faire. Je n'ai pas dérangé parce que c'est fonctionnellement inutile, cela vient de piquer mon intérêt.



1
votes

Oui. Vous pouvez le faire glisser et le déposer en mode de conception, ou copier et coller en mode de la table Edition


En réponse aux commentaires, oui, c'est avec SQL Server Management Studio via l'interface utilisateur et sous la hotte, il fait la goutte / recrée que vous essayez d'éviter, donc non, vous ne pouvez pas le faire sans le serveur le faire pour vous.


3 commentaires

Cela fera une goutte / recrée à l'arrière-plan.


Je suppose que c'est ce que vous feriez si vous utilisiez SQL Management Studio. Êtes-vous sûr que SQL Server ne fasse pas une goutte et de recréer dans les coulisses. J'ai l'impression que cela copie les données à une table Temp, puis gouttes et recrée la table avant de copier les données. Je n'ai pas accès à SQL Server en ce moment ou je n'entraînerais pas le profileur SQL et j'essaie ce que vous avez suggéré.


Je cherchais vraiment un moyen de le faire dans la déclaration de table Alter, qui est ce que SQL Management Studio fait de toute façon.



0
votes

première réponse, no.

Seconde réponse, selon ce fil http: //www.sqlteam. com / forums / topic.asp? topic_id = 58912 , trouvé via Puis-je réorganiser logiquement des colonnes dans une table? , vous pouvez créer la colonne puis réorganiser les colonnes de la table en modifiant les tables système. Mais il a l'air incroyablement désordonné et je ne ferais pas confiance que les choses ne se briseraient pas.


1 commentaires

Vous ne pouvez pas modifier les tables système dans les versions après SQL Server 2000.



1
votes

Regardez ce lien:

http: // www .bobsgear.com / Affichage / TS / Ajout + Colonne + Après + une autre colonne + - + SQL + Server + 2005

Comme vous pouvez le constater, la réponse est la suivante:

'impossible sans déplacer des données sur une table Temp'

Quel est ce que le studio fait réellement.


0 commentaires

10
votes

Réponse moyenne, oui (ish) mais c'est moche et vous ne voudriez probablement pas le faire.

Veuillez noter que ce code crée une table physique p>

CREATE TABLE MyTest (a int, b int, d int, e int)

INSERT INTO MyTest (a,b,d,e) VALUES(1,2,4,5)

SELECT * FROM MyTest

ALTER TABLE MyTest ADD c int
ALTER TABLE MyTest ADD d_new int
ALTER TABLE MyTest ADD e_new int

UPDATE MyTest SET d_new = d, e_new = e

ALTER TABLE MyTest DROP COLUMN d
ALTER TABLE MyTest DROP COLUMN e

EXEC SP_RENAME 'MyTest.d_new', 'd';
EXEC SP_RENAME 'MyTest.e_new', 'e';

SELECT * FROM MyTest 

DROP TABLE MyTest


0 commentaires

1
votes

Oui, vous pouvez ajouter ici la requête de votre préoccupation: xxx


2 commentaires

Votre réponse est pour MySQL. Ils posent des questions sur SQL Server.


Eh bien, toujours reconnaissant pour cela, j'ai besoin de ça '



1
votes

Ceci est possible dans SQL Server Management Studio (SSMS). Filtrez votre table dans l'explorateur d'objets et faites un clic droit sur la table> Conception

 Entrez la description de l'image ici

Faites glisser la flèche en surbrillance dans la gauche pour déplacer votre colonne.


0 commentaires