sql >> Databasteknik >  >> RDS >> Sqlserver

EXEC lagrad procedur med flexibel parameter för att välja antal(*)... och skicka ett e-postmeddelande

Jag känner mig tvungen att råda dig om att om du överför variabler till dynamiska strängar som denna gör du öppen för SQL-injektioner. Detta är en dålig praxis, och allmänt sett illa om det inte är mycket strikt kontrollerat.

Som sagt...

Ändra din @MySQL från varchar till nvarchar.

Försök sedan att ändra detta:

set @MySQL = 'select count(*) from ' [email protected] + ' where ' + @MyWhere 
set @SQL_Count = @MySQL 
set @recordCount = convert(int, @SQL_Count ) -- <<--this is the error

Till detta:

set @MySQL = 'select @recordCount=count(2) from ' + @MyTable + ' where ' + @MyWhere 
exec sp_execute @MySQL, N'@recordCount int OUTPUT', @[email protected] OUTPUT


  1. Python MySQLdb-uppdateringsfråga misslyckas

  2. find_in_set och find_in_set oväntat resultat

  3. Ändra php-skript till PDO orsakar syntaxfel under MySQL-uppdateringsfråga

  4. Få frekvensfördelning av ett decimalområde i MySQL