在notepad ++中使用宏来创建sql脚本

时间:2011-03-24 15:46:27

标签: sql macros notepad++

我有一个看起来像

的sql脚本
UPDATE dbo.Pictures 

SET Data = 

(SELECT data 

FROM [SRV-Data].[QAFull-Global].dbo.Pictures p

WHERE p.PictureID = '')

WHERE PictureID = ''



UPDATE dbo.Pictures 

SET ThumbnailData = 

(SELECT ThumbnailData 

FROM [SRV-Data].[QAFull-Global].dbo.Pictures p

WHERE p.PictureID = '')

WHERE PictureID = ''

大约有2000个唯一ID。我想你们了解其余部分。我想要记事本++去throgh并填写''与id的列表我必须在管理工作室运行它。谢谢你的帮助。

ID的列表是一些ID

7E26E0DC-5B51-4A63-95E7-0FE6168AD217

377C9BF5-59B9-43B4-9BDB-1092BEDF3A68

454047DD-A045-451B-B1C6-109EB59B1871

7734C4B0-5F80-4D45-B8C3-14C0F5D029FD

4FC6C36C-8B35-498D-970C-15078B331857

548E09B5-A339-4DCA-9DDA-151D95C24DBA

B6399FAA-03A9-410C-84B6-155C807DD03F

895A8101-D028-4935-B447-156E4C936E65

62D7610A-3ABD-44CD-91CE-16936A275DCC

EA7D5104-5647-449F-B91F-16ADBE7AA057

2 个答案:

答案 0 :(得分:0)

如果您想要我想要的内容,只需使用Notepad ++中的录制功能即可。将光标放在第一个ID的开头,点击“Macro-> Start Recording”,添加一个引号,点击“end”到达行尾,点击另一个引号,我猜一个逗号,向下移动一行并点击“home”以到达该行的开头。然后点击“宏 - >停止录制”。

现在已经捕获了一个宏,它将当前行的ID包装在引号中并移动到下一行的开头。点击“宏 - >多次运行宏”,选择“运行直到文件结尾”。

即使这不是你想要的,希望它会给你一个想法。基本上,记录“从一行的开头开始,对那一行进行操作,移到下一行的开头”,然后回放。

答案 1 :(得分:0)

您的唯一ID列表是否已存储在数据库中?如果是这样,我建议不要使用notepad ++来创建宏,我会创建一个select语句,返回您正在寻找的更新语句列表。

老实说,即使唯一ID当前不在数据库中,我也会遇到导入它们,然后创建select语句的麻烦。

SELECT
    '
        UPDATE dbo.Pictures 
        SET Data = 
        (
            SELECT data 
            FROM [SRV-Data].[QAFull-Global].dbo.Pictures p
            WHERE p.PictureID = ''' + sourceTable.PictureID + '''
        )
        WHERE PictureID = ''' + sourceTable.PictureID + ''
FROM
    WhateverTableHasYourUniqueIDs sourceTable