如何在SQL Server中生成并手动插入唯一标识符?
我试图在我的表中手动创建一个新用户,但发现如果代码不抛出异常,就无法生成“UniqueIdentifier”类型 以下是我的例子:如何在SQL Server中生成并手动插入唯一标识符?,sql,sql-server,database,tsql,uniqueidentifier,Sql,Sql Server,Database,Tsql,Uniqueidentifier,我试图在我的表中手动创建一个新用户,但发现如果代码不抛出异常,就无法生成“UniqueIdentifier”类型 以下是我的例子: DECLARE @id uniqueidentifier SET @id = NEWID() INSERT INTO [dbo].[aspnet_Users] ([ApplicationId] ,[UserId] ,[UserName] ,[LoweredUserName]
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
引发此异常->
Msg 8169,16级,状态2,第4行
无法将字符串转换为唯一标识符
我正在使用NEWID()方法,但它不起作用
应用程序ID必须是
唯一标识符类型
。如果执行以下操作,则代码工作正常:
DECLARE @TTEST TABLE
(
TEST UNIQUEIDENTIFIER
)
DECLARE @UNIQUEX UNIQUEIDENTIFIER
SET @UNIQUEX = NEWID();
INSERT INTO @TTEST
(TEST)
VALUES
(@UNIQUEX);
SELECT * FROM @TTEST
因此,我认为可以安全地假设
ApplicationId
不是正确的数据类型 请检查表aspnet\u Users中的列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
这应该可以正常工作-表中的
UserID
列是什么类型的?您确定要插入字符串的其他列不是UniqueIdentifier
类型吗?ApplicationID可能?错误可能是针对另一列,我猜是ApplicationID,ApplicationID的数据类型是什么?它有“uniqueidentifier”类型,但我已经读到应该使用NewGuid()生成类型“uniqueidentifier”。错了吗?啊,只是!applicationID是..的唯一标识符。。