Hvordan til at generere og manuelt indsætte en uniqueidentifier i sql server?

Hej alle, jeg forsøger at oprette en ny bruger i mit bord, men umuligt at skabe en “UniqueIdentifier” type uden at det kastede en undtagelse …

Her er mit eksempel:

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

Troe undtagelse ->
Msg 8169, Level 16, Staten 2, Linje 4
Undladt at konvertere en tegnstreng til at uniqueidentifier.

Jeg bruger NEWID () – metoden, men det er ikke arbejde…

http://www.dailycoding.com/Posts/generate_new_guid_uniqueidentifier_in_sql_server.aspx

At skulle virke fint – sqlfiddle.com/#!6/699d6/1
Hvilken type er din UserID kolonne i tabellen? Er du sikker på, at nogle andre kolonne er ikke UniqueIdentifier type, hvor du sætter strenge? ApplicationID måske?
Fejlen er formentlig en anden kolonne, mit gæt er ApplicationID, hvad der er de data type ApplicationID?
Det har “uniqueidentifier” type, men jeg har læst, at der bør anvendes NewGuid () til at generere en type “uniqueidentifier”. Er det forkert?
ahhhh bare ! applicationID er en uniqueidentifier til ..

OriginalForfatteren Mehdi Bugnard | 2013-06-24

2 svar

  1. 32

    ApplicationId skal være af typen UniqueIdentifier. Din kode virker fint, hvis du gør:

    DECLARE @TTEST TABLE
    (
      TEST UNIQUEIDENTIFIER
    )
    
    DECLARE @UNIQUEX UNIQUEIDENTIFIER
    SET @UNIQUEX = NEWID();
    
    INSERT INTO @TTEST
    (TEST)
    VALUES
    (@UNIQUEX);
    
    SELECT * FROM @TTEST

    Derfor vil jeg sige, at det er sikkert at antage, at ApplicationId er ikke den korrekte datatype.

    OriginalForfatteren Darren

  2. 4

    Bedes kontrollere Kolonne ApplicationId datatype i Tabellen aspnet_Users , ApplicationId kolonnen datatype skal være uniqueidentifier .

    *Din parameter ordre er gået forkert ,
    Parameter @id skal være bestået som første argument, men i dit script, det er placeret i et andet argument.
    .*

    Så fejlen er rejst..

    Bemærk dommer script:

    DECLARE @id uniqueidentifier
    SET @id = NEWID()
    Create Table #temp1(AppId uniqueidentifier)
    
    insert into #temp1 values(@id)
    
    Select * from #temp1
    
    Drop Table #temp1

    OriginalForfatteren bgs

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *