Comme il est pas pratique de mettre le code dans un commentaire, en réponse à votre commentaire dans la réponse de Eric que cela ne fonctionne pas pour vous ...
Je viens de rencontrer ce qui suit sur une boîte SQL 2005 (désolé , pas très pratique 2000) avec les paramètres par défaut et cela a fonctionné sans erreur:
CREATE TABLE dbo.Test_Identity_Insert
(
id INT IDENTITY NOT NULL,
my_string VARCHAR(20) NOT NULL,
CONSTRAINT PK_Test_Identity_Insert PRIMARY KEY CLUSTERED (id)
)
GO
INSERT INTO dbo.Test_Identity_Insert VALUES ('test')
GO
SELECT * FROM dbo.Test_Identity_Insert
GO
vous envoient peut-être la valeur d'identité sur votre liste de valeurs? Je ne pense pas que vous pouvez le faire ignorer la colonne si vous lui transmettez une valeur. Par exemple, si votre table a 6 colonnes et que vous voulez ignorer la colonne IDENTITY, vous ne pouvez transmettre que 5 valeurs.
pourquoi ne voulez-vous pas utiliser une liste de noms de colonnes? –
@Mitch, c'est plutôt complexe, mais j'ai un programme qui génère le SQL à la volée et dans ma conception d'origine je n'avais pas de colonnes d'identité, donc j'ai exclu les noms de colonnes. J'ai besoin de faire une mise à jour rapide et je peux éviter d'utiliser des noms de colonnes, cela rendrait cela beaucoup plus facile. –
@ nemo-- Ayant été dans la situation de "patch rapide" avant, je vais vous donner un laissez-passer pour le moment. Mais s'il vous plaît, pour votre propre plaisir, prévoyez de spécifier les noms de colonnes dans la prochaine mise à jour complète .... – RolandTumble