In EXECUTE , procname can only be a literal or variable of type char, varchar, nchar, or nvarchar.
Msg 8199, Level 16, State 1, Line 3
In EXECUTE <procname>, procname can only be a literal or variable of type char, varchar, nchar, or nvarchar.
This error message appears when you try to EXECUTE a variable, but this variable is not of one of the types listed in the error message.
The SQL statement cannot be parsed and further execution is stopped.
Errors of the Severity Level 16 are generated by the user and can be fixed by the SQL Server user. The statement cannot be executed this way. The variable to be executed must be of a type listed in the error message.
All versions of SQL Server.
DECLARE @i INT
SET @i = 1
In the above error message we try to execute a variable of the type INT. This raises the error.