You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sybase 17:如何将sp_columns结果插入临时表?求正确语法

如何在Sybase中将sp_columns的结果存入临时表?

Sybase ASE 不支持你使用的 et_result 参数语法来直接导出存储过程结果到临时表,正确的做法是先创建与 sp_columns 输出结构匹配的临时表,再通过 INSERT...EXEC 语句捕获结果。

步骤1:创建匹配结构的临时表

sp_columns 的输出列是固定的,你可以直接创建如下结构的临时表:

CREATE TABLE #ColumnListing (
    TABLE_QUALIFIER VARCHAR(128),
    TABLE_OWNER VARCHAR(128),
    TABLE_NAME VARCHAR(128),
    COLUMN_NAME VARCHAR(128),
    DATA_TYPE SMALLINT,
    TYPE_NAME VARCHAR(128),
    PRECISION INT,
    LENGTH INT,
    SCALE SMALLINT,
    RADIX SMALLINT,
    NULLABLE SMALLINT,
    REMARKS VARCHAR(254),
    COLUMN_DEF VARCHAR(254),
    SQL_DATA_TYPE SMALLINT,
    SQL_DATETIME_SUB SMALLINT,
    CHAR_OCTET_LENGTH INT,
    ORDINAL_POSITION INT,
    IS_NULLABLE VARCHAR(3),
    SS_DATA_TYPE TINYINT
)

步骤2:将sp_columns结果插入临时表

使用 INSERT...EXEC 执行存储过程并将结果写入临时表:

INSERT INTO #ColumnListing
EXEC sp_columns 'TableName'

注意事项

  • 临时表的列名、数据类型和顺序必须与 sp_columns 的输出完全一致,否则会出现列不匹配的报错。
  • 若需要跨会话访问临时表,可以使用全局临时表(命名为 ##ColumnListing),但一般会话级临时表(# 开头)即可满足需求。
  • 如果你不确定 sp_columns 的输出结构,可以先单独执行 EXEC sp_columns 'TableName',查看结果集的列信息后再创建临时表。

内容的提问来源于stack exchange,提问作者avb0101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 10:17:02