每行使用两次相同的GUID

ben*_*ear 4 xml sql-server guid sql-server-2008

我正在构建一个应用程序,通过ftp和XML文件将数据从SQL服务器传输到非现场位置.

我正在通过查询为每个文件构建XML数据FOR XML PATH('path'), TYPE.

我将使用a GUID生成文件名以及用作文件中的标识符,目前我的SQL获取表如下(简化):

SELECT LVL1.inv_account_no
     , LVL1.cus_postcode
     , CONVERT(varchar(255),NEWID()) + '.xml' as FileName
     , (SELECT (SELECT CONVERT(varchar(255),NEWID()) FOR XML PATH('ident'), TYPE),  (

                SELECT.... [rest of very long nested select code for generating XML]
Run Code Online (Sandbox Code Playgroud)

SQL小提琴示例

这给了我:

Account Postcode  FileName                              xCol
AD0001  B30 3HX   2DF21466-2DA3-4D62-8B9B-FC3DF7BD1A00  <ident>656700EA-8FD5-4936-8172-0135DC49D200</ident>
AS0010  NN12 8TN  58339997-8271-4D8C-9C55-403DE98F06BE  <ident>78F8078B-629E-4906-9C6B-2AE21782DC1D</ident>
Run Code Online (Sandbox Code Playgroud)

每行/使用的基本不同的GUID NEWID().

有没有办法可以在不增加游标或进行两次更新的情况下将相同的GUID插入到两列中?

小智 8

尝试这样的事情:

SELECT GeneratedGuid, GeneratedGuid
FROM YourTable
LEFT JOIN (SELECT NEWID() AS GeneratedGuid) AS gg ON 1 = 1
Run Code Online (Sandbox Code Playgroud)

"GeneratedGuid"对每一行都有不同的GUID.