从其他表中的值创建SQL Server选择/删除查询

我有一个名为Master_Table的主表,该主表中的列和值如下:

|   ID  |   Database | Schema | Table_name  | Common_col | Value_ID |
+-------+------------+--------+-------------+------------+----------+
|   1   | Database_1 | Test1  | Test_Table1 | Test_ID    |  1       |
|   2   | Database_2 | Test2  | Test_Table2 | Test_ID    |  1       | 
|   3   | Database_3 | Test3  | Test_Table3 | Test_ID2   |  2       |

我还有另一个Value_Table,其中包含需要删除的值。

| Value_ID | Common_col | Value  | 
+----------+------------+--------+
|   1      | Test_ID    | 110    | 
|   1      | Test_ID    | 111    |
|   1      | Test_ID    | 115    |
|   2      | Test_ID2   | 999    |

我需要构建一个查询以创建一个SQL查询,以从Master_Table中提供的表中删除该值,该表的数据库和架构信息在同一行中提供。我需要参考删除记录的列在主表的Common_col列中,我需要选择的值在Value的{​​{1}}列中。

我的查询结果应创建如下查询:

  

从Database_1.Test1.Test_Table1中删除,其中Test_ID = 110;   或

     

从数据库_1.Test1.Test_Table1中删除(110,111,115)中的Test_ID;

这些查询应该在循环中,以便我可以从主表中提供的所有数据库和表中删除所有行。

wangwangla11 回答:从其他表中的值创建SQL Server选择/删除查询

查询实际上不会创建查询。

一种处理您所说内容的方法,如果这是一次性的或非常偶然的事情,这可能会很有用,它是使用SSMS生成查询语句,然后将其复制到剪贴板,然后将其粘贴到窗口中,然后在那里执行。

$scope.bd1 = {
    'subTotal': $scope.subTotal,'total': $scope.finalTotal,'TotalPaid': $scope.paidAmount,'invDateStr': $scope.invoiceDate.toISOString(),'billProductList': $scope.fproducts,};

$http({
    method: 'POST',url: 'added-invoice',data: $scope.bd1,headers: {'Content-Type': 'application/json'}
}).then(function successCallback(response) {
    var data = response.data;
    if (data.st === 1) {
        $scope.success = true;
        window.location = 'bhome#!/show-tax';
    } else if (data.st === 0) {
        $scope.success = false;
        $scope.failure = true;
    } else if (data.data.st === -1) {
        $scope.success = false;
        $scope.failure = true;
    }
},function errorCallback(response) {
    $scope.success = false;
    $scope.failure = true;
});

这可能不是您想要的;听起来更像是您要自动执行清理操作。

如果您不介意重复自己的话,可以将其变成一个大查询:

SELECT 'DELETE FROM Database_1.Test1.Test_Table1 WHERE ' 
       + common_col
       + ' = ' 
       + convert(VARCHAR(10),value)

您也可以将动态SQL与第一部分结合使用...但是我讨厌动态SQL,因此我不会将其放在答案中。

本文链接:https://www.f2er.com/3033609.html

大家都在问