hansen_chen 2014-07-24 08:32
浏览 1305

如何解决sql server2008下提示master.dbo.spt_datatype_info不存在的问题?

USE DB_AA
GO
SET ANSI_NULLS, QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE dbo.[GetFldInfo]
WITH ENCRYPTION

AS
Begin
SELECT Cast(Upper(Obj.name) As Varchar(28)) As TABLE_NAME, Cast(Col.name As Varchar(20)) As FieldNAME,
Fld_NO=convert(int,(select count(*) from syscolumns C where C.id = Col.id
AND C.number= Col.number AND C.Colid<= Col.Colid )),
Cast ( spt_dtp.LOCAL_TYPE_NAME As Varchar(20)) As FieldTYPE,
CONVERT(int, OdbcPrec(Col.xtype,Col.length, Col.xprec) + spt_dtp.charbin) As FieldLen,
Cast (Com.text As Varchar(100)) As defaultValue,
CASE Col.isnullable WHEN 1 THEN 'YES' ELSE 'No' END As IsNullable,
ISKey =(select TOP 1 A.ColID from sysIndexkeys A,Sysindexes B where (A.ID=B.ID) and (A.IndID=B.IndID) And (A.ColID=Col.ColID)And (A.ID=Obj.ID) And (B.Name like 'PK%') order by B.INDID )
FROM SysObjects Obj, master.dbo.spt_datatype_info Spt_dtp, Systypes typ, TABLESRC Src ,
Syscolumns Col LEFT OUTER JOIN
Syscomments Com ON Col.cdefault = Com.ID AND Com.ColID = 1
WHERE Obj.ID = Col.ID AND Typ.xtype = Spt_dtp.ss_Dtype AND (spt_dtp.ODBCVer IS NULL OR
Spt_dtp.ODBCVer = 2) AND Obj.xtype='U' And User_ID('dbo')=Obj.UID and
Col.xusertype = Typ.xusertype AND (spt_dtp.AUTO_INCREMENT IS NULL OR
Spt_dtp.AUTO_INCREMENT = 0) And (Upper(Obj.Name)=Src.Table_name)

Order by Src.Table_name,Col.ColID
END
GO
在sql2000下执行没问题,在sql2008下,提示master.dbo.spt_datatype_info不存在

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办
    • ¥15 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
    • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
    • ¥15 onvif+openssl,vs2022编译openssl64