@@IDENTITY
gibt die letzte Identität in der aktuellen Sitzung zurück (aus einer INSERT
, SELECT INTO
oder bulk copy
Anweisung).
Sie können keine uniqueidentifier-Spalte als Identitätsspalte festlegen - dies wird in SQL Server nicht unterstützt. Daher macht Ihre Frage keinen Sinn, wenn Sie nicht wirklich versuchen, eine INT-Identität in eine Art Hash zu konvertieren?
Die Sie @@IDENTITY
von einem Einsatz nehmen tun könnten (können von einer ganzen Zahl ID-Spalte mit IsIdentity
Satz wahr sagen), dann es Hash - HINWEIS: die resultierende Hash ist kein GUID:
INSERT INTO [Test].[dbo].[tbl_uqTest]
(Test)
VALUES ('x')
SELECT CONVERT(VARCHAR(32), HASHBYTES('MD5', CONVERT(VARCHAR(255), @@IDENTITY)), 2)
Ich werde jedoch sagen - ich kann wirklich nicht einen guten Grund denken, dies zu tun!
Diese Umwandlung macht keinen Sinn. Was versuchst du zu erreichen? –
Nicht verwandt mit Ihrer Frage, aber 'scope_identity()' ist fast immer eine bessere Wahl als '@@ identity'. '@@ identity' gibt die letzte Identität für eine gegebene Sitzung an, während' scope_identity() 'die letzte Identität in der aktuellen Sitzung und im aktuellen Bereich angibt. http://msdn.microsoft.com/en-us/library/ms190315.aspx –