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

SQL Serverの変数列名?

    SQLは@aの値を知る前にコンパイルされるため、これを行うことはできません(実際には、@ aを何らかのパラメーターにし、例のようにハードコーディングしないようにする必要があると想定しています)。

    代わりに、これを行うことができます:

    declare @a as varchar; 
    set @a='TEST' 
    
    declare @sql nvarchar(max)
    set @sql = 'select [' + replace(@a, '''', '''''') + '] from x'
    
    exec sp_executesql @sql
    

    ただし、これはセキュリティの脆弱性(SQLインジェクション攻撃)であるため、@ aを信頼できない、または十分にクリーンアップできない場合は、実行しないでください。



    1. LinuxにSQL*PLUSクライアントをインストールする方法

    2. レイアウトビューのフィルターを使用してMicrosoftAccessレポートを実行する時間を節約する

    3. PHPでPDOを使用して開いたSQL接続を閉じる必要がありますか

    4. 特定のユーザーが所有するすべてのテーブルで選択を許可する