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

動的SQL(パラメーターとしてテーブル名を渡す)

    まず、文字列から「+」を省略しました。この方法は理想からはほど遠いですが、できます

    DECLARE @SQL varchar(250)
    SELECT @SQL = 'SELECT * FROM ' + QuoteName(@Alias)
    Exec(@SQL)
    

    ただし、これをどのように行うかを再考することを強くお勧めします。動的SQLを生成すると、SQLインジェクションの脆弱性が発生するだけでなく、SQL Server(および他のDB)がクエリを処理するための最良の方法を見つけるのが難しくなります。任意のテーブルを返すことができるストアドプロシージャがある場合、最適化の方法で多くのことを行うことができないため、そもそもストアドプロシージャであることによるメリットはほとんどありません。主にセキュリティ上のメリットもあります。



    1. ユーザーアカウント管理、役割、権限、認証PHPおよびMySQL-パート2

    2. MySQLの1つを除くすべての重複行を削除しますか?

    3. 低い権限を持つPL-SQLを使用してOracleで列データ型を取得するにはどうすればよいですか?

    4. SQLAlchemy1つのマップされたクラスの複数の外部キーを同じ主キーに