Ich habe ein Problem zu verstehen Skalarvariablen in SQL als die Logik nicht zu vergleichen scheint, was ich bin es gewohnt, in C.Sql Skalarvariablen
auf dieser gespeicherten Prozedur Arbeiten:
CREATE procedure [dbo].[sp_GetUserNameByLast4SSNandDOB]
@SSN varchar(4)
@DOB date
AS
SELECT
User_FirstName + ' ' + User_LastName AS EmployeeName
FROM
tblUsers m
WHERE
RIGHT(m.User_SSN, 4) = @SSN
AND m.User_DOB = @DOB
Versuche, die Variablen einfach weiterzugeben und die eine Zeile zurückzugeben, die zurückgegeben wird. Aber es scheint immer zu sein, dass die Variable skalar ist. Jede Hilfe mit dem Verständnis, wie man Skalare vermeidet, wird sehr geschätzt. Vielen Dank!
Kennzeichnen Sie Ihre Fragen mit der von Ihnen verwendeten Datenbank. –
möchten Sie vielleicht über die Art der Sprachen nachdenken, in denen SQL und C zwei verschiedene Systeme sind. Dabei ist C eine Programmiersprache, die meist Ihre Anwendung spielt, während SQL eine Datenbanksprache ist und die Datenbank selbst eine eigene Struktur hat ... i sehe nicht, dass SQL in der Lage ist, nicht-skalare Variablen zu verarbeiten, da hier alles definiert werden muss, ich nehme an, hier zählt jedes Bit – maSTAShuFu
Randnotiz für ** SQL Server **: Sie sollten ** nicht ** das 'sp_' verwenden Präfix für Ihre gespeicherten Prozeduren. Microsoft hat [dieses Präfix für seine eigene Verwendung reserviert (siehe * Gespeicherte Prozeduren benennen *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx), und Sie riskieren irgendwann in der Zukunft einen Namenskonflikt. [Es ist auch schlecht für die Leistung Ihrer gespeicherten Prozedur] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Es ist am besten, einfach 'sp_' zu vermeiden und etwas anderes als Präfix zu verwenden - oder gar kein Präfix! –