我有一个批处理文件,提示用户输入要删除的列以及要删除的值。在用户键入两个值后,我的SQL脚本开始查找该特定列和该特定值:
declare @columnName nvarchar(255)
declare @intValue int
set @columnName = '$(colu)' --COLUMN NAME WHERE VALUE IS LOCATED
set @intValue = '$(sn)' --VALUE TO BE DELETED
declare @DeleteValue varchar(10)
set @DeleteValue = convert(varchar(10), @intValue)
declare @sql nvarchar(max) = ''
select @sql = @sql + 'delete ' + object_name(c.object_id) + ' where ' + @columnName + ' = ' + @DeleteValue + ';'
from sys.columns c
where c.name = @columnName
select @sql
exec sp_executesql @sqlde here
数据库示例:
Student Table
Grade Student_id
17 6
22 14
25 14
26 15
32 15
课程表
Grade Course
17 math
22 math
25 literature
26 history
32 Science
当我删除学生ID时,我也希望它从每个表中删除相应的成绩。
例如:如果我想删除student_id 1,则应删除student_id 14 + 22& amp; 25以上与student_id 14相关的数学和文学课程。
但是我的代码没有这样做