T-SQL的作用是什么&书信电报;表名>;在这种情况下是不可访问的”;什么意思?(SQL代码:1001042)
使用Sybase IQ 12.5 当我尝试将存储过程的结果插入如下表中时:T-SQL的作用是什么&书信电报;表名>;在这种情况下是不可访问的”;什么意思?(SQL代码:1001042),sql,tsql,sap-iq,Sql,Tsql,Sap Iq,使用Sybase IQ 12.5 当我尝试将存储过程的结果插入如下表中时: INSERT mytable (column1, column2, column3) SELECT column1, column2, column3 FROM (myproc('AAA')) 我得到以下信息: ASA Error -1001042: Table, 'mytable', is not accessible in this context. Sybase网站能否发布存储过程的定义?下面的测试对我来说是
INSERT mytable (column1, column2, column3)
SELECT column1, column2, column3
FROM (myproc('AAA'))
我得到以下信息:
ASA Error -1001042: Table, 'mytable', is not accessible in this context.
Sybase网站能否发布存储过程的定义?下面的测试对我来说是成功的,尽管我在任何地方使用了Sybase SQL(我尝试了版本12.0.1和11.0.1)。Sybase IQ服务器基于SQL Anywhere执行引擎,因此这应该是一个等效的测试,尽管我不确定SQL Anywhere的哪个版本对应于IQ 12.5
create table mytable (column1 int, column2 int, column3 int);
create procedure myproc( parm varchar(10))
result ( column1 int, column2 int, column3 int)
begin
select 1,2,3;
end;
INSERT mytable (column1, column2, column3)
SELECT column1, column2, column3
FROM (myproc('AAA'));
完全公开:我在SQL Anywhere工程中为Sybase工作。问题是由我的目标表具有检查约束引起的 下面是一个重新创建问题的示例:
create table mytable (column1 int,
column2 int,
column3 int CHECK (column3 in (1,2,3)));
create procedure myproc( parm varchar(10))
result ( column1 int, column2 int, column3 int)
begin
select 1,2,3;
end;
INSERT mytable (column1, column2, column3)
SELECT column1, column2, column3
FROM (myproc('AAA'));
谢谢,这让我更进一步,我解决了这个问题(见我的答案)。