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条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图
    • ¥15 stm32开发clion时遇到的编译问题
    • ¥15 lna设计 源简并电感型共源放大器
    • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)