Create Function getstring (@ maintablename varchar (50), @ returnlist varchar (50), @ targetlist varchar (50), @ matchinglist varchar (50 ))
Returns varchar (100)
As
Begin
Return (select @ returnlist from @ maintablename where (@ targetlist = @ matchinglist ))
End
Error message "message 1087, Level 15, status 2, process getstring, 5th rows
The table variable "@ maintablename" must be declared "."
After asking a colleague, I learned that the error is located. @ maintablename is of the text type. If the passed value is "user", the response is in the statement.
Select @ returnlist from 'user'. It is obviously wrong here. If the table name is specified, no error is reported. Similarly, an error occurs in the where (@ targetlist = @ matchinglist,
But no error is reported during execution.
Solution: 1. Specify the table name
2. Patchwork statement
Declare @ SQL varchar (255)
Set @ SQL = 'select' + @ retstr + '= content from' + @ strtable + 'where id =' + @ Strid + 'and unitdivis =' + @ iunitdivis + 'order by serno'
Exec (@ SQL)