sql >> Database >  >> RDS >> Sqlserver

Opgeslagen EXEC-procedure met flexibele parameter voor select count(*)... en het verzenden van een e-mail

Ik voel me verplicht om u te informeren dat het doorgeven van variabelen aan dynamische strings zoals deze u openstelt voor SQL-injecties. Dit is een slechte gewoonte en wordt over het algemeen afgekeurd, tenzij zeer strikt gecontroleerd.

Dat gezegd hebbende...

Wijzig uw @MySQL van varchar in nvarchar.

Probeer dit dan te veranderen:

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

Hierop:

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


  1. Soorten Index in orakel?

  2. Een database herstellen met Backup Manager

  3. Een veilige PHP-klasse die verbinding maakt met MySQL?

  4. Mysql.h ontbreekt en probeert mysql-devel te vinden