Как создать и вручную вставить uniqueidentifier в sql server?
Привет всем я пытаюсь вручную создать нового пользователя в моей таблице, но невозможно создать тип " UniqueIdentifier "без исключения...
вот мой пример:
DECLARE @id uniqueidentifier
SET @id = NEWID()
INSERT INTO [dbo].[aspnet_Users]
([ApplicationId]
,[UserId]
,[UserName]
,[LoweredUserName]
,[LastName]
,[FirstName]
,[IsAnonymous]
,[LastActivityDate]
,[Culture])
VALUES
('ARMS'
,@id
,'Admin'
,'admin'
,'lastname'
,'firstname'
,0
,'2013-01-01 00:00:00'
,'en')
GO
исключение Trow - > Msg 8169, Уровень 16, Состояние 2, Строка 4 Не удалось преобразовать символьную строку в uniqueidentifier.
Я использую метод NEWID (), но это не работает...
http://www.dailycoding.com/Posts/generate_new_guid_uniqueidentifier_in_sql_server.aspx
2 ответов
ApplicationId должен иметь тип UniqueIdentifier
. Ваш код отлично работает, если вы делаете:
DECLARE @TTEST TABLE
(
TEST UNIQUEIDENTIFIER
)
DECLARE @UNIQUEX UNIQUEIDENTIFIER
SET @UNIQUEX = NEWID();
INSERT INTO @TTEST
(TEST)
VALUES
(@UNIQUEX);
SELECT * FROM @TTEST
поэтому я бы сказал, что можно с уверенностью предположить, что ApplicationId
не является правильным типом данных.
пожалуйста, проверьте столбец ApplicationId тип данных в таблице aspnet_Users, тип данных столбца ApplicationId должен быть uniqueidentifier .
*ваш порядок параметров передается неправильно , Параметр @id должен быть передан как первый аргумент, но в вашем скрипте он помещается во второй аргумент..*
поэтому возникает ошибка..
пожалуйста, обратитесь к образцу сценария:
DECLARE @id uniqueidentifier
SET @id = NEWID()
Create Table #temp1(AppId uniqueidentifier)
insert into #temp1 values(@id)
Select * from #temp1
Drop Table #temp1