[求助一个问题]关于动态SQL语句的执行!在线等候,谢谢!!!

lqlin 2003-12-17 10:48:18
DECLARE @column_count INT
declare @table_name varchar(20)
declare @sql nvarchar(600)

set @table_name = 'scrwdwj'

set @sql = N'select '+convert(varchar(120), @column_count) +'select 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 output

print @column_count
但@column_count没有返回数据,这是为什么,请高手指点,谢谢!!!
...全文
58 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
txlicenhe 2003-12-17
  • 打赏
  • 举报
回复
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 output

print @column_count
lqlin 2003-12-17
  • 打赏
  • 举报
回复
可以了,谢谢!!
txlicenhe 2003-12-17
  • 打赏
  • 举报
回复
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 output

print @column_count
zjcxc 2003-12-17
  • 打赏
  • 举报
回复
--用错了,用下面的就可以了.

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 output

print @column_count

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧