2014-11-28 3 views
0

Я получаю сообщение об ошибке при попытке вставить данные в таблицу, поскольку я не знаю, как вставить первичный ключ. Ошибки я получаю:Вставка данных в таблицу SQL Server

Операнда типа столкновения: INT несовместима с UniqueIdentifier

Моего кода:

USE BeachTennis7 

INSERT INTO dbo.player (playerfname, playerlname, gender, age, [prior rank], player_id) 
VALUES ('Dan', 'McClure', 'M', 21, 1, 0); 

Я понимаю значение int не может быть преобразованы в ключ, Я просто не знаю, как объявить первичный ключ. Благодаря!

ответ

2

Вам нужно объявить переменную как уникальный идентификатор, а затем добавить ее в инструкцию insert.

DECLARE @playerId uniqueidentifier 
SET @playerId = NEWID() 

INSERT INTO dbo.player (playerfname,playerlname,gender,age,[prior rank],player_id) 
VALUES ('Dan','McClure','M',21,1, @playerId); 
+0

Большое спасибо, имеет смысл. – Dan

+1

@ user3325875, рассмотрите возможность добавления ограничения по умолчанию для столбца player_id со значением NEWSEQUENTIALID(). Это позволит избежать необходимости указывать столбец и значение в инструкции insert и работать лучше, чем случайное значение GUID. –

+1

@ user3325875: если этот ответ помог вам решить вашу проблему, пожалуйста, [** принять этот ответ **] (http://meta.stackoverflow.com/q/5234/153998). Это покажет вашу признательность тем, кто * провел свое время, чтобы помочь вам *. –

0

Используйте этот

INSERT INTO dbo.player (playerfname, playerlname, пола, возраста, [до ранга], player_id) VALUES ('Дан', 'МакКлюр', 'M', 21 , 1, NEWID());

Смежные вопросы