回答

收藏

如何在SQL Server中生成并手动插入一个uniqueidentifier?

技术问答 技术问答 334 人阅读 | 0 人回复 | 2023-09-14

我正在尝试在表中手动创建新用户,但是在不引发异常的情况下无法生成“ UniqueIdentifier”类型…
- Y: n* ]- o! v这是我的示例:2 N; n& U$ y6 k7 Z
DECLARE @id uniqueidentifier
; e& ~. ^8 L. q' U8 f: vSET @id = NEWID()
  O% z  c+ B) P6 p2 r4 h% cINSERT INTO [dbo].[aspnet_Users]5 v' |/ A$ }5 [. U. `/ @. Q
           ([ApplicationId], [* A. s% ?. r' I1 z% `8 r6 U2 Q
           ,[UserId]5 r/ p9 R4 O% u+ |9 k. q
           ,[UserName]$ U$ G4 }9 n7 R5 L- k
           ,[LoweredUserName]$ b" k2 v$ O) P: z* O8 g9 c
           ,[LastName]( K1 c: p# g! [' h- w  m
           ,[FirstName], k- }+ q& Y. s% l4 r9 M
           ,[IsAnonymous]
& \+ g0 S% z" p6 d, [           ,[LastActivityDate]
! H# q- q0 [7 f8 P" D* {           ,[Culture])& d9 y3 _. q6 C! S% `7 Z
     VALUES/ e+ b0 ?3 ^- }8 V, n* p$ i- v
           ('ARMS'2 P3 [4 F( l5 Z& |: X2 S' x
           ,@id# a/ v/ k' v( J9 H8 i9 p- b
           ,'Admin'! z5 @0 i/ y9 K% p+ {' L
           ,'admin'
; V$ c$ k# W3 G% B6 e) [           ,'lastname'
) F/ u0 r' q: E           ,'firstname', Q* P) f: ^6 r# Q2 v8 }; O9 Q
           ,0
' {4 _$ S( b5 m/ f           ,'2013-01-01 00:00:00'
7 p6 d0 ?) M# f% O, F           ,'en')
0 }4 e6 Z4 H$ J# O# EGO
5 R* ~- C: M) V" L) r7 ^+ s抛出异常->消息8169,级别16,状态2,行4无法将字符串转换为uniqueidentifier。0 w! C1 X6 k! i% h$ f
我使用了NEWID()方法,但是它不起作用…3 U& ^/ M& O& M
http://www.dailycoding.com/Posts/generate_new_guid_uniqueidentifier_in_sql_server.aspx
% `) c* K2 O! j  y               
+ l5 B9 ]5 j1 T) L/ A% c+ g解决方案:. Y8 [1 l" r- D
               
' ~( L8 v5 L7 x8 o* i. y$ Z5 \
7 O1 z8 V/ Q! W; |# A
/ L  H% G& t3 R+ w                ApplicationId必须为类型UniqueIdentifier。如果您执行以下操作,您的代码可以正常工作:
3 {5 r# I7 o3 ^5 u3 L4 t# Y7 X- mDECLARE @TTEST TABLE; H2 C- p( i9 B  Y4 O
(
! `/ ^, ^# \$ y' o5 H0 r  TEST UNIQUEIDENTIFIER% u, r' Z- \9 A/ ~: h
)
: D9 C2 s  ^+ S7 Y2 D. lDECLARE @UNIQUEX UNIQUEIDENTIFIER' u/ y3 R" E& O0 k$ r) l
SET @UNIQUEX = NEWID();8 ]2 |) G) [3 [# p* M  y& H
INSERT INTO @TTEST
% X' j' B. L. ]# f5 E5 i0 w, A(TEST)7 V* S$ ^* h- j& J
VALUES
; ^) j, F* d' J* j- t4 b9 ?; D(@UNIQUEX);
6 q2 V7 U1 k, z! gSELECT * FROM @TTEST7 N* E6 h  V# Z4 U
因此,我可以肯定地说这ApplicationId不是正确的数据类型。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则