我正在尝试从我的 SQL 库中的多个表中删除数据。
在数据库中,我有一个名为 company 的表,其中包含我需要从中删除数据的每个表的名称。
假设我的公司表中有 3 家公司。
我想要做的是删除每家公司某些特定表中的所有记录。
因此,在公司表中,我有以下 3 条记录:
1 2 3
数据库中还有以下表格,描述了每个公司的扫描文件。
dbo.1.documents
dbo.2.documents
dbo.3.documents
我要做的是创建一个 SQL 查询,该查询将通过 dbo.company 表运行,并根据在那里找到的公司名称清除文档表。
这是我的代码:
DECLARE @MyCursor CURSOR;
DECLARE @MyField varchar;
BEGIN
SET @MyCursor = CURSOR FOR
select top 1000 [Name] from dbo.Company
OPEN @MyCursor
FETCH NEXT FROM @MyCursor
INTO @MyField
WHILE @@FETCH_STATUS = 0
BEGIN
delete * from 'dbo.'+@MyField+'$documents'
FETCH NEXT FROM @MyCursor
INTO @MyField
END;
CLOSE @MyCursor ;
DEALLOCATE @MyCursor;
END;
我不确定语法应该如何,但我想它是这样的。
有人关心我如何根据 dbo.company.name 中的记录动态删除数据吗?