Mam zapytanie dynamiczne, w którym chcę połączyć unikalnyidentyfikator, ale operatory + i & nie wspierają tego, czy jest sposób, w jaki mogę połączyć unikatowy identyfikator z ciągiem dynamicznym. Każda próbka lub jakakolwiek pomoc w tym zakresie będzie wysoce przydatna.jak połączyć unikalnyidentyfikator w dynamicznym zapytaniu
Odpowiedz
Czy próbowałeś najpierw rzucić lub przekonwertować na ciąg, a następnie próbować?
CAST(NEWID() AS NVARCHAR(36))
wiem, że to jest stary, ale wpadłem na to stanowisko próbuje dowiedzieć się samo i problemem było to, że nie mam wystarczająco dużo „s wokół mojego unikalnego identyfikatora. I w zasadzie miał:
'SELECT * FROM Interface WHERE ID = '' + CAST(@InterfaceID AS NVARCHAR(36)) + '' AND 1 = 1'
mam błąd mówiąc Niepoprawna składnia w pobliżu 00A (pierwsza część GUID). Problemem jest to, że został parsowania do:
SELECT * FROM Interface WHERE ID = 00A3F5B5-C7B3-4128-B03A-EADE79129F40 AND 1 = 1
Zmieniając moje zapytanie do:
'SELECT * FROM Interface WHERE ID = ''' + CAST(@InterfaceID AS NVARCHAR(36)) + ''' AND 1 = 1'
z trzema apostrofami uzyskałem:
SELECT * FROM Interface WHERE ID = '00A3F5B5-C7B3-4128-B03A-EADE79129F40' AND 1 = 1
który jest poprawny.
Nadzieję, że pomaga.
Próbowałem, że to nie działa, podając niepoprawną składnię w pobliżu rzutowania lub konwertując, jeśli dokonuję konwersji –
@Yaser: "SELECT CAST (NEWID() AS NVARCHAR (36))". Spróbuj i pomyśl sam. – gbn
Przykro nam Drodzy przyjaciele, mój stan to WHERE (CreatedBy = CAST (@p_CreatedBy AS NVARCHAR (100))) tutaj @CreatedBy jest unikalnymidentyfikatorem Próbowałem nawet przekonwertować go, nie uzyskując żadnego wyniku. Proszę pomóc –