【发布时间】:2009-07-31 20:03:19
【问题描述】:
我正在从 ADO.NET 访问存储过程。 存储过程最终应该返回一个结果集。
为了计算这个结果,使用 SELECT INTO 语句填充一个临时表。
问题是 SELECT INTO 语句的结果也作为结果集返回给 .NET。
可以抑制吗?或者我不应该使用 SELECT INTO,而是 CREATE TABLE 后跟一个 INSERT 语句?
【问题讨论】:
标签: .net tsql temp-tables
我正在从 ADO.NET 访问存储过程。 存储过程最终应该返回一个结果集。
为了计算这个结果,使用 SELECT INTO 语句填充一个临时表。
问题是 SELECT INTO 语句的结果也作为结果集返回给 .NET。
可以抑制吗?或者我不应该使用 SELECT INTO,而是 CREATE TABLE 后跟一个 INSERT 语句?
【问题讨论】:
标签: .net tsql temp-tables
我建议避免使用 SELECT INTO,因为它会推断您的列名/类型,并且如果您的源查询以任何方式复杂(例如 CASE 语句),这可能会产生意想不到的结果。
如果我需要保存所描述的值,我总是创建一个表变量或一个临时表。
如果您使用 CREATE TABLE #TableName ()(或 DECLARE @tableName TABLE ())然后使用 INSERT,那么您将不会获得返回的额外结果集。
【讨论】: