SQL Server从整个数据库中删除记录

时间:2015-10-13 20:57:59

标签: sql sql-server

我有一个批处理文件,提示用户输入要删除的列以及要删除的值。在用户键入两个值后,我的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相关的数学和文学课程。

但是我的代码没有这样做

0 个答案:

没有答案