2009-06-24 8 views

risposta

9

Hai provato a eseguire il casting o la conversione in una stringa, quindi concedere?

CAST(NEWID() AS NVARCHAR(36)) 
+0

ho provato questo non funziona, dando sintassi errate near cast, o convertire se im convertendo –

+0

@Yaser: "SELECT CAST (NEWID() AS NVARCHAR (36))". Per favore, prova e pensa per te. – gbn

+0

Scusa Cari amici, la mia condizione è WHERE (CreatedBy = CAST (@p_CreatedBy AS NVARCHAR (100))) qui @CreatedBy è un identificativo univoco ho anche provato a convertirlo, non ottenendo alcun risultato. Si prega di aiutare –

7

So che questo è vecchio, ma mi sono imbattuto in questo post cercando di capire la stessa cosa e il problema era che non avevo abbastanza s' intorno al mio identificativo univoco. Ho praticamente avuto:

'SELECT * FROM Interface WHERE ID = '' + CAST(@InterfaceID AS NVARCHAR(36)) + '' AND 1 = 1'

ho ottenuto un errore che dice sintassi non corretta in prossimità 00A (la prima parte del GUID). Il problema è che questo è stato di analisi per:

SELECT * FROM Interface WHERE ID = 00A3F5B5-C7B3-4128-B03A-EADE79129F40 AND 1 = 1

Cambiando la mia domanda a:

'SELECT * FROM Interface WHERE ID = ''' + CAST(@InterfaceID AS NVARCHAR(36)) + ''' AND 1 = 1'

con tre apostrofi ho ottenuto:

SELECT * FROM Interface WHERE ID = '00A3F5B5-C7B3-4128-B03A-EADE79129F40' AND 1 = 1

Quale è corretta.

Spero che questo aiuti.