mssql存储过程if...else。判断

execsp_executesql@sqls,N'@aintoutput',@numoutputprint@numif(@num>0)set@sql='updatetab... exec sp_executesql @sqls,N'@a int output',@num output
print @num
if(@num>0)
set @sql = 'update table set....'
else
set @sql='insert into table values'
print (@sql)

为什么输出个num为0.但是个sql没东西打印出来呢?
展开
 我来答
wwttxx2
2012-04-19 · 超过35用户采纳过TA的回答
知道答主
回答量:179
采纳率:0%
帮助的人:124万
展开全部
不知道。。
我做了测试
declare @num int
declare @sql varchar(100)
set @num = 0
if(@num>0)
set @sql = 'update table set....'
else
set @sql='insert into table values'
print (@sql)

发现能print出来语句啊
追问
发现是set @sql='insert into table('+@ColumnName+',starttime,endtime,userid,name) values(cast('+@nID+' as int),getdate(),getdate(),cast('+@id+' as int),'''+@name+''')'   这句出问题。。。怎么改呢。。
追答
首先要确保这些变量都声明了,然后应该确保这些变量都有值,如果没值的话,是print不出来的。
可以在print (@sql) 之前把这些变量的值都print出来,这样可以调试
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式