小编Chr*_*777的帖子

针对文本文件中的数据运行多个命令 (SQL Server 2008 R2)

我是这个网站的新手,所以如果我问的是一个基本问题和/或一个之前被问过 100 次的问题,请原谅我。我在这里搜索时找不到答案。

我想让我的脚本从 txt 文件(每行一个值)中读取值,并为每个值执行三个不同的语句。

伪代码:

$file = getfile('c:\file.txt');

foreach($value in $file)
{
    DELETE x WHERE x = '$value';
    DELETE y WHERE y = '$value';
    DELETE z WHERE z = '$value';
}
Run Code Online (Sandbox Code Playgroud)

我知道这可能不像我的伪代码所希望的那么容易,但是我在 Google 上的所有搜索都返回了包含大量 SQL 的长篇文章,这让我无法理解。

我正在寻找我可以实现的示例,关于该主题的好文章,和/或一记耳光告诉我醒来并意识到这在 SQL 中并不容易。

sql-server-2008 sql-server sql-server-2008-r2

5
推荐指数
2
解决办法
2670
查看次数

在相关的产品折扣表中插入最多 10 个缺失的产品

我有两个表:productsproducts_discounts。如果某个产品被指定为“前 10 名”产品,并且在 中缺少定义的折扣products_discounts,我想products_discounts为每个缺少的记录插入一条记录。插入的值将由product_idINSERT INTO中的和另外两个硬编码值组成。

产品
id、product_id、名称、top_ten

Products_Discounts
id、product_id、discount_amount、discount_description

以下是我计划如何手动执行此操作,但由于我将每年重复此过程几次,因此我想看看这是否可以通过几行 SQL 完成。

(1) 获取符合我的条件的产品列表。

SELECT p.product_id, pd.discount_amount FROM products AS p
LEFT OUTER JOIN products_discounts AS pd
    ON p.product_id = pd.product_Id
WHERE p.top_ten = 1
    AND pd.product_id IS NULL
Run Code Online (Sandbox Code Playgroud)

(2) 使用文本编辑器构建每个单独的 INSERT INTO 语句。我会使用步骤 1 的输出来获取product_ids 但其他两个值将保持不变(硬编码)。

INSERT INTO products_discounts (product_id, discount_amount, discount_description)
VALUES ('<product_id goes here>', 10, 'Top 10 Product')
Run Code Online (Sandbox Code Playgroud)

这些步骤可以组合成几行SQL吗?

sql-server t-sql

3
推荐指数
2
解决办法
1035
查看次数