大家好我正在尝试在我的表中手动创建一个新用户但是不能生成“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,Level 16,State 2,Line 4 无法将字符串转换为uniqueidentifier。
我使用NEWID()方法,但它不起作用......
http://www.dailycoding.com/Posts/generate_new_guid_uniqueidentifier_in_sql_server.aspx
答案 0 :(得分:33)
ApplicationId必须是UniqueIdentifier
类型。如果你这样做,你的代码就可以了:
DECLARE @TTEST TABLE
(
TEST UNIQUEIDENTIFIER
)
DECLARE @UNIQUEX UNIQUEIDENTIFIER
SET @UNIQUEX = NEWID();
INSERT INTO @TTEST
(TEST)
VALUES
(@UNIQUEX);
SELECT * FROM @TTEST
因此,我认为可以安全地假设ApplicationId
不是正确的数据类型。
答案 1 :(得分:4)
请检查表aspnet_Users中的Column ApplicationId数据类型,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