如题,我在执行一段sql代码的时候报错,错误如下:
但是我的Sql语句在Sqlserver工具里面执行是没有报任何问题的。
if exists (select 1 from sysobjects where name = 'sysproperties'and xtype = 'V')
begin
DROP VIEW sysproperties;
end
go
CREATE VIEW sysproperties AS SELECT class AS id,Minor_id AS sMallid,* from sys.extended_properties;
go
Select
表名= d.name ,
表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
字段序号=a.colorder,
字段名=a.name,
标识=case when COLUMNPROPERTY(a.id,a.name,'IsIdentity')=1 then 'identity(1,1)' else '' end,
主键=case when exists(Select 1 FROM sysobjects where xtype='PK' and name in
(Select name FROM sysindexes Where indid in(Select indid FROM sysindexkeys Where id=a.id AND colid=a.colid))) then 'primary key' else '' end,
类型=b.name,
字段长度=a.length,
占用字节数=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空=case when a.isnullable=1 then 'null'else 'not null' end,
默认值=isnull(e.text,''),
字段说明=isnull(g.[value],'')
FROM syscolumns a
left join systypes b on a.xusertype=b.xusertype
inner join sysobjects d on (a.id=d.id)and(d.xtype='U')and(d.name<>'dtproperties')
left join syscomments e on a.cdefault=e.id
left join sysproperties g on (a.id=g.id)and(a.colid=g.smallid)
left join sysproperties f on (d.id=f.id)and(f.smallid=0)
where d.name='@tablename' --如果只查询指定表,加上此条件
order by a.id,a.colorder ;
sql查询时CommandType=Text 不知道是什么原因,有大神告知一下吗?是因为那个判断的问题?如果是请大神指导下,这句话我应该怎么修改呢? 我需要的是能直接执行的sql(),视图和存储过程都不用推荐,谢谢。