我有一张包含学生级关系的表格:
Student Grade StartDate EndDate
1 1 09/01/2009 NULL
2 2 09/01/2010 NULL
2 1 09/01/2009 06/15/2010
Run Code Online (Sandbox Code Playgroud)
我试图写一个存储过程,它接受Student,Grade以及StartDate和我会把它想
EndDate = NULL,则用StartDate新记录更新该记录.举例来说,如果我调用过程并传递1,2,09/01/2010,我想直到结束:
Student Grade StartDate EndDate
1 2 09/01/2010 NULL
1 1 09/01/2009 09/01/2010
2 2 09/01/2010 NULL
2 1 09/01/2009 06/15/2010
Run Code Online (Sandbox Code Playgroud)
这听起来像我可以使用MERGE,除了我传递文字值,我需要执行多个操作.今天早上我也有一个邪恶的头痛,似乎无法清楚地思考,所以我正在关注这个MERGE解决方案.如果有更明显的方法可以做到这一点,不要害怕指出它.
使用FOR XML PATH编码我的 HTML 使我的超链接毫无用处。我看到其他人正在使用value方法来防止编码。然而,这去掉了我需要的表结构。我可以进行搜索替换,有效地解码 html。这似乎不是正确的做法。
此查询中的 Company 列是有问题的子项:
DECLARE @tableHTML NVARCHAR(MAX)
DECLARE @subj VARCHAR(255)
SET @tableHTML =
N'<style type="text/css">' +
N'table, td {border-collapse: collapse; vertical-align: top; text-align: left;font-family: Calibri; font-size: 12px;}' +
N'th {vertical-align: middle; text-align: left;border-bottom-style: solid; border-bottom-width: 0px; border-bottom-color: #CCCCCC; background-color: #000000; color: #FFFFFF;}' +
N'td {border-bottom-style: solid; border-bottom-width: 0px; border-bottom-color: #CCCCCC}' +
N'</style>' +
N'<h3 style="font-family: Calibri">Contacts:</h3>' +
N'<table id="bodyTable" cellpadding="5" cellspacing="5" style="border: 1px solid #C0C0C0; vertical-align: top; text-align: left; …Run Code Online (Sandbox Code Playgroud)