日期:2014-05-17  浏览次数:20619 次

求解决 超难的 怎么调用别的数据库的columnproperty 在线等啊
本帖最后由 widjly 于 2012-11-08 19:19:23 编辑
SELECT name FROM [192.168.1.3].[SohuOA_ADFTest].dbo.syscolumns WHERE ID='1163151189' AND columnproperty(id,name,'IsIdentity')<>1
总是无效。。怎么办啊。。。
columnproperty(id,name,'IsIdentity')总是调用 本地数据库的。。 
------最佳解决方案--------------------
额~~~不可能啊,我在公司调用,也会返回公司服务器的数据而不是我本机的哦。你访问[]192.168.1.3]上的数据库,然后执行:

SELECT name FROM [SohuOA_ADFTest].dbo.syscolumns WHERE ID='1163151189' AND columnproperty(id,name,'IsIdentity')<>1

会返回你本机的吗?
------其他解决方案--------------------
你找一个 有效的 表ID 测一下  columnproperty的值。。总是为空
------其他解决方案--------------------
额~~~联机丛书上说为null就是:出现错误时或调用方没有权限查看对象时,将返回 NULL。
 
 
------其他解决方案--------------------
那。。你用个本地的 有效 表ID测一下。。
我想知道。。有没有 columnproperty的全称 即:[DB].[dbo].[TableName]像这样的。 
如查可以也行。
------其他解决方案--------------------
AND columnproperty(id,name,'IsIdentity')<>1是找出没有自增列的数据.
用下面的语句,一大堆
SELECT  name ,
         id
 FROM    master .dbo.syscolumns
 WHERE   
         COLUMNPROPERTY(id, name, 'IsIdentity') <> 1

------其他解决方案--------------------
联机丛书:IsIdentity   列使用 IDENTITY 属性。  1 = TRUE  0 = FALSE  NULL = 输入无效。

你的说法应该要用:AND columnproperty(id,name,'IsIdentity')=1
  
------其他解决方案--------------------
。。我是想找 非自增的列。。
可现在问题就是。。找不出一大堆。。
你可以这样。
openrowset (....."SELECT columnproperty('本地数据库表的ID','本地数据库字段名','IsIdentity')";看看。
------其他解决方案--------------------
谢谢你了。。。不过。我用别的方法解决。。。
------其他解决方案--------------------
openrowset 需要开启连接服务器。