--用错了,用下面的就可以了.DECLARE @column_count     INT 
declare @table_name     varchar(20)
declare @sql nvarchar(600)set @table_name = 'scrwdwj'set @sql = N'select  @column_count=count(name) from syscolumns where id in (select id from sysobjects where name ='''+ @table_name+''')'
exec  sp_executesql @sql, N'@column_count int output',@column_count outputprint  @column_count

解决方案 »

  1.   

    DECLARE @column_count     INT 
    declare @table_name     varchar(20)
    declare @sql nvarchar(600)set @table_name = 'usr_mstr'set @sql = N'select @column_count = count(name) from syscolumns where id in 
    (select id from sysobjects where name =''
    + @table_name+'')' exec  sp_executesql @sql, N'@table_name varchar(20),@column_count int output',
    @table_name,@column_count outputprint  @column_count
      

  2.   

    DECLARE @column_count     INT 
    declare @table_name     varchar(20)
    declare @sql nvarchar(600)set @table_name = 'scrwdwj'set @sql = N'select @column_count = count(name) from syscolumns where id in 
    (select id from sysobjects where name ='''
    + @table_name+''')' exec  sp_executesql @sql, N'@table_name varchar(20),@column_count int output',
    @table_name,@column_count outputprint  @column_count