Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL Server中生成并手动插入唯一标识符?_Sql_Sql Server_Database_Tsql_Uniqueidentifier - Fatal编程技术网

如何在SQL Server中生成并手动插入唯一标识符?

如何在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]

我试图在我的表中手动创建一个新用户,但发现如果代码不抛出异常,就无法生成“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
引发此异常-> 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是..的唯一标识符。。