sql >> データベース >  >> RDS >> Sqlserver

select count(*)... の柔軟なパラメーターを使用した EXEC ストアド プロシージャと電子メールの送信

    このように変数を動的文字列に渡すと、SQL インジェクションの危険にさらされることをお勧めします。これは悪い習慣であり、非常に厳密に管理されていない限り、一般的に嫌われています。

    そうは言っても...

    @MySQL を varchar から nvarchar に変更します。

    次に、これを変更してみてください:

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

    これに:

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


    1. PHPを使用して単純なExcelデータをMySQLにエクスポートする

    2. ClusterControlを使用してMariaDB10.3を管理する方法

    3. SSIS が列名をフラット ファイル出力に書き込まないようにするにはどうすればよいですか?

    4. デフォルト値としてfalseを使用してMySQLでブール列を作成しますか?