0

データベースからユーザー名のリストを削除するストアド プロシージャを作成しました。ただし、このスクリプトの出力は奇妙です。ユーザー名入力である入力を列として扱います。なぜそうしているのですか?

CREATE PROCEDURE [dbo].[sp_deleteUsersFromDb]( @username varchar(500)) AS
BEGIN
   DECLARE @SQL varchar(600)

   EXEC('UPDATE [dbo].USER SET DELETED = 1 WHERE USERNAME IN (' + @username + ')')

   PRINT N'DELETED THE USERS FROM THE DB'
END

これを実行すると、

メッセージ 207、レベル 16、状態 1、行 1
列名 'user1' が無効です。
データベースからユーザーを削除しました

テーブル スキーマは次のとおりです。

CREATE TABLE [dbo].[USER](
[ID] [int] IDENTITY(1,1) NOT NULL,
[VERSION] [int] NOT NULL,
[USERNAME] [varchar](32) NOT NULL,
[DELETED] [bit] NULL,

    CONSTRAINT [USER_PK] 
   PRIMARY KEY CLUSTERED ([ID] ASC)
) ON [PRIMARY]
4

1 に答える 1