Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查询其他shema syscolumns表_Sql_Sybase_Sap Iq - Fatal编程技术网

Sql 查询其他shema syscolumns表

Sql 查询其他shema syscolumns表,sql,sybase,sap-iq,Sql,Sybase,Sap Iq,我正在执行SQL查询以检查天气模式abc\u hist是否有表@table\u name。但以下查询即使在表存在时也无法返回任何结果,即每次都使if条件为false: use abc go ----procedure--- IF EXISTS(select 1 from abc_hist..syscolumns where status & 128 = 128

我正在执行SQL查询以检查天气模式abc\u hist是否有表@table\u name。但以下查询即使在表存在时也无法返回任何结果,即每次都使if条件为false:

use abc
go
----procedure---
IF EXISTS(select  1
                  from    abc_hist..syscolumns
                  where   status & 128 = 128
                          and     object_name(id) = @table_name )
----procedure---
所以,问题是,有没有其他方法可以有效地检查表在其他模式中的存在或我当前sql中的更正?

运行以下命令:

select 
  CASE WHEN status & 8> 0 THEN 'allows null' ELSE 'no nulls' end, 
  CASE WHEN status & 16 > 0 THEN 'check constraint exists' ELSE 'no checks' end, 
  CASE WHEN status & 128 > 0 THEN 'is identity' ELSE 'not identity' end,
  *
              from    abc_hist..syscolumns
              where   object_name(id) = @table_name
它在每一行中都会显示“not identity”,这意味着作为参数传入的
@table_name
没有标识列,并且因为您在where子句中设置了一个条件,即结果必须是标识列才能返回,所以没有结果,所以EXISTS总是false

如果要使用此查询检查表是否存在,请删除状态上的WHERE子句:

IF EXISTS(select  1
              from    abc_hist..syscolumns
              where   object_name(id) = @table_name )

谢谢你对身份的使用使它更容易理解。