Sql 在短时间内得到正确的结果,而不是在短时间内得到错误的结果…@user960567你所问的目的只有通过光标才能有效地解决。而且我建议缓慢,以便在短时间内得到正确和更准确的结果,而不是在短时间内得到错误的结果…好方法。我喜欢为每一列重复更新好吗?Measn对每
Sql 在短时间内得到正确的结果,而不是在短时间内得到错误的结果…@user960567你所问的目的只有通过光标才能有效地解决。而且我建议缓慢,以便在短时间内得到正确和更准确的结果,而不是在短时间内得到错误的结果…好方法。我喜欢为每一列重复更新好吗?Measn对每,sql,sql-server,tsql,sql-server-2008-r2,Sql,Sql Server,Tsql,Sql Server 2008 R2,在短时间内得到正确的结果,而不是在短时间内得到错误的结果…@user960567你所问的目的只有通过光标才能有效地解决。而且我建议缓慢,以便在短时间内得到正确和更准确的结果,而不是在短时间内得到错误的结果…好方法。我喜欢为每一列重复更新好吗?Measn对每一列有效?取决于您是否想要多个故障(仅当您被添加到ErrorReason中,如我的第二个示例)。如果您只关心第一个原因,那么您可以在WHERE:和IsValid=1中添加另一个子句,我将把它添加到第一个示例中。好方法。我喜欢为每一列重复更新好吗
在短时间内得到正确的结果,而不是在短时间内得到错误的结果…@user960567你所问的目的只有通过光标才能有效地解决。而且我建议缓慢,以便在短时间内得到正确和更准确的结果,而不是在短时间内得到错误的结果…好方法。我喜欢为每一列重复更新好吗?Measn对每一列有效?取决于您是否想要多个故障(仅当您被添加到
ErrorReason
中,如我的第二个示例)。如果您只关心第一个原因,那么您可以在WHERE:和IsValid=1中添加另一个子句,我将把它添加到第一个示例中。好方法。我喜欢为每一列重复更新好吗?Measn对每一列有效?取决于您是否想要多个故障(仅当您被添加到ErrorReason
中,如我的第二个示例)。如果您只关心第一个原因,那么可以向WHERE:和IsValid=1添加另一个子句,我将把它添加到第一个示例中。
SELECT TD.MyTempTableID
,TD.ID
,TD.Name
,TD.PhoneNumber
,TD.Featured
,TD.Price
,TD.Available
,TD.ModelNumber
,TD.Searchable
,TD.Brand
,TD.Tags
,TD.ShortDescriptions
,TD.Variations
,TD.Promotion
,TD.Archive
,TD.UPC
,TD.Status
FROM MyTempTable YD
WHERE TD.Brand = @Brand
Declare @ID as varchar(500)
Declare @Name as varchar(30)
Declare @MOBILE as varchar(20)
--AND OTHER vARUIABLE FOR oTHER FIELDS
Declare MY_data CURSOR FOR
SELECT TD.MyTempTableID
,TD.ID
,TD.Name
,TD.PhoneNumber
,TD.Featured
,TD.Price
,TD.Available
,TD.ModelNumber
,TD.Searchable
,TD.Brand
,TD.Tags
,TD.ShortDescriptions
,TD.Variations
,TD.Promotion
,TD.Archive
,TD.UPC
,TD.Status
FROM MyTempTable YD
WHERE TD.Brand = @Brand
OPEN MY_data
FETCH NEXT FROM MY_data INTO @ID, @Name ,@MOBILE -- All other Declared vARIABLE FOR EACH COLUMNS EACH SEPERATE BY ','
WHILE @@FETCH_STATUS = 0
BEGIN
--Here you can validate data for each row since each row value is stored in vaariables above like
if( ! IsNumeric(@Mobile))
Delete From TableName where Id=@Id
END
CLOSE MY_data
DEALLOCATE MY_data
DELETE From Table where ISnumeric(PhoneNumber)=0
UPDATE MyTempTable
SET IsValid = 0
WHERE IsNumeric(PhoneNumber) = 0
-- don't process rows that have already failed
AND IsValid = 1
UPDATE MyTempTable
SET IsValid = 0,
-- note I'm forcing a line-break here inside the string so each reason is on a new line
ErrorReason += 'PhoneNumber must be numeric
'
WHERE IsNumeric(PhoneNumber) = 0