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

パラメータとしての列名および/またはテーブル名

    動的SQLを使用する必要があります。パラメーターをテーブル名または列名として使用することはできません。つまり、次のようなものです:

    CREATE TABLE #temp (newcol nvarchar(500)) -- Use the type you're getting out of @TableName
    DECLARE @TableName nchar(20) = 'MyTable'
    DECLARE @ColumnName nchar(20) = 'MyColumn'
    
    EXEC('INSERT INTO #temp SELECT [' + @ColumnName + '] FROM [' + @TableName + ']')
    
    DECLARE UpdateList CURSOR FOR
    SELECT newcol FROM #temp
    OPEN UpdateList
    

    動的SQLに関連するセキュリティとパフォーマンスの問題を覚えておいてください。ここでは、変数をどのように設定するかわかりません。これを行うと、明確な危険が生じる可能性があります。

    編集:完全なコードを追加しました。



    1. SQLの選択と更新の適切な方法

    2. PostgreSQLで日付スタイルを変更するにはどうすればよいですか?

    3. SQLServerのデフォルトの文字エンコード

    4. GoogleChartのタイムラインアイテムからリンクを作成する