Was ist der Vorteil der Verwendung von @ParmDefinition in sp_executesql

DECLARE @id int
DECLARE @name nvarchar(20)
SET @id = 5
SET @name = 'Paul'

Was ist der Unterschied zwischen diesen beiden Optionen:

Set @SQLQueryInnen = 'SELECT * FROM someTable WHERE ID = ' + @id + ' AND NAME = ''' + @name + ''''
Execute sp_Executesql @SQLQueryInnen

un

Set @SQLQueryInnen = 'SELECT * FROM someTable WHERE ID = @id AND NAME = @name'
Set @ParmDefinition = '@id int, @name nvarchar(20)'
Execute sp_Executesql @SQLQueryInnen, @ParmDefinition, @id

Bisher sehe ich nur den Overhad für die zweimalige Deklaration des Datentyps @id und @name, wenn @ParmDefinition verwendet wird. Auf der anderen Seite scheint das "Bauen von Strings" mit @ ParamDefinition etwas einfacher zu sein.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage