大家帮我测下个存储过程有什么问题,对大家应该都有用 ( 积分: 50 )

H

hnwhh

Unregistered / Unconfirmed
GUEST, unregistred user!
编译可以过,但使用的时候提示我语法错误<br>create&nbsp;&nbsp;&nbsp;PROCEDURE&nbsp;granttable&nbsp;&nbsp;(@userName&nbsp;varchar(30))&nbsp;&nbsp;AS&nbsp;<br>begin<br>&nbsp;&nbsp;declare&nbsp;@uname&nbsp;varchar(200)<br>&nbsp;&nbsp;declare&nbsp;@type&nbsp;varchar(10)<br>&nbsp;<br>&nbsp;&nbsp;declare&nbsp;cur1&nbsp;cursor&nbsp;for&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(select&nbsp;name&nbsp;from&nbsp;sysobjects&nbsp;where&nbsp;(xtype='U'&nbsp;or&nbsp;xtype='V'&nbsp;or&nbsp;xtype='P')&nbsp;and&nbsp;status&gt;0)<br><br>&nbsp;&nbsp;open&nbsp;cur1<br>&nbsp;&nbsp;fetch&nbsp;next&nbsp;from&nbsp;cur1&nbsp;into&nbsp;@uname<br>&nbsp;&nbsp;while&nbsp;@@fetch_status=0<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;@type=(select&nbsp;xtype&nbsp;from&nbsp;sysobjects&nbsp;where&nbsp;name=@uname)<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;@type!='P'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exec&nbsp;&nbsp;&nbsp;('GRANT&nbsp;&nbsp;&nbsp;SELECT,INSERT,UPDATE,DELETE&nbsp;&nbsp;ON&nbsp;&nbsp;&nbsp;'+&nbsp;&nbsp;&nbsp;@uname&nbsp;&nbsp;&nbsp;+'&nbsp;&nbsp;&nbsp;TO&nbsp;'+@userName)&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exec&nbsp;&nbsp;&nbsp;('GRANT&nbsp;&nbsp;&nbsp;EXEC&nbsp;&nbsp;ON&nbsp;&nbsp;&nbsp;'+&nbsp;&nbsp;&nbsp;@uname&nbsp;&nbsp;&nbsp;+'&nbsp;&nbsp;&nbsp;TO&nbsp;'+@userName)&nbsp;&nbsp;&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;fetch&nbsp;&nbsp;&nbsp;next&nbsp;&nbsp;&nbsp;from&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur1&nbsp;&nbsp;&nbsp;into&nbsp;&nbsp;&nbsp;@uname&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;<br><br>&nbsp;&nbsp;close&nbsp;&nbsp;&nbsp;cur1&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;deallocate&nbsp;&nbsp;&nbsp;cur1<br><br><br>end
 
没有问题,前提是:SQL&nbsp;SERVER的登录里,@userName指定的用户名要有访问当前数据库的权限,否则会提示&nbsp;&quot;不存在这样的用户或组&quot;
 
为什么我的提示:<br>服务器:&nbsp;消息&nbsp;170,级别&nbsp;15,状态&nbsp;1,行&nbsp;1<br>[Microsoft][ODBC&nbsp;SQL&nbsp;Server&nbsp;Driver][SQL&nbsp;Server]第&nbsp;1&nbsp;行:&nbsp;'-'&nbsp;附近有语法错误。
 
有问题的语句你没贴出来,你可能在Create语句之前有--注释行。这在查询分析器里没问题,但如果你在Delphi中使用Ado来执行,就可能报错,请确保Create语句是第一行。<br>有时,语句中或语句间有太长的--注释行也会报错。
 
你可以在sql语句,弄些打印标志,再调试
 
顶部