Sql server SQL字符串don';无法获取其值ExecuteOnQuery失败,没有运行时错误
以下代码甚至不会引发异常,参数@p1、@p2和@p3也没有它们的运行时值:Sql server SQL字符串don';无法获取其值ExecuteOnQuery失败,没有运行时错误,sql-server,vb.net,tsql,stringbuilder,Sql Server,Vb.net,Tsql,Stringbuilder,以下代码甚至不会引发异常,参数@p1、@p2和@p3也没有它们的运行时值:ExecuteNonQueryreturn zero如果您有权访问开发服务器,请运行探查器以查看实际传递给SQL server引擎的内容 另外,在VB.NET代码中放入一些调试行。我肯定出了什么事 PS:以文本格式显示最终查询。所有的字符串附件都会使阅读更加混乱 这些语句可以删除 DECLARE @cur_date_time datetime; SELECT @cur_date_time = getdate();
ExecuteNonQuery
return zero如果您有权访问开发服务器,请运行探查器以查看实际传递给SQL server引擎的内容
另外,在VB.NET代码中放入一些调试行。我肯定出了什么事
PS:以文本格式显示最终查询。所有的字符串附件都会使阅读更加混乱
这些语句可以删除
DECLARE @cur_date_time datetime;
SELECT @cur_date_time = getdate();
只需将第一行更改为第二个版本
AND d.DateModified >= @cur_date_time
AND d.DateModified >= getdate()
我将使用较新的语法进行连接。请注意,在进行内联getdate()更改后,我注意到表a、b和c处于交叉连接关系中。IE-它们不是通过键连接的。这是你真正想要的吗
INSERT INTO
aic_global_change_xref(ChangeTableGUID, ChangeRecordGUID, GlobalChangeGUID)
SELECT
a.GUID as ChangeTableGUID,
d.GUID as ChangeRecordGUID,
b.GUID as GlobalChangeGUID
FROM
aic_change_table a
aic_global_change b
aic_rationale c
LEFT JOIN
aic_obs_set_obs_set_obs_item_xref_chg d on c.GUID = d.RationaleGUID
LEFT JOIN
aic_obs_set e ON d.ParentObsSetGUID = e.GUID
LEFT JOIN
dbo.aic_obs_set f ON d.ChildObsSetGUID = f.GUID
WHERE
f.GUID = @p1 and
d.ParentObsSetGUID = @p2 and
c.RationaleText = @p3 and
d.DateModified >= getdate() and
a.ChangeTableName = 'aic_obs_set_obs_set_obs_item_xref_chg' and
b.GlobalChangeCode = 'EDITS';
我会把我给你的代码放到SSMS中,然后定义@p1、@p2和@p3。查看您得到的结果
我将所有内容都更改为左连接,这样数据就不会从等式中丢失。因为我不知道您的业务逻辑,也没有您的数据集,所以剩下的工作由您决定
祝你好运 刚刚添加了运行时sql…我知道这真的很难阅读…整个应用程序就是这样…是否有任何跳转为关闭?在SSMS中运行代码,直到得到想要的结果。我所做的重写使事情变得更清晰。删除了IN子句,因为您只有一个变量。交叉连接是记录的叉积。a、b和c中的10条记录=10x10x10=1K。我做了所有剩下的连接,这样数据就不会从结果中消失。根据您的业务需求对此进行更改。