CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

大家指点迷津:exec sp_executesql 与WHERE从句筛选?

楼主ExeMan(愚公移山(笨)--精卫填海(傻))2006-03-15 13:49:10 在 MS-SQL Server / 基础类 提问

过程如下:  
  ALTER   PROCEDURE   dbo.UserLogin(@UserName   nvarchar(50)='VIP01')  
  AS  
  declare   @StrSql       nvarchar(1024)  
  declare   @fond_no   nvarchar(50)  
  set   @strsql=''  
  set   @strsql='select   @fond_no=LoginName   from   dbo.[UserData-0]'--   WHERE   LoginName=VIP01'  
  exec   sp_executesql     @StrSql,N'@fond_no   nvarchar(50)   output',@fond_no   output--加WHERE从句后,提示>>列名'VIP01'无效  
  print   @fond_no   --不加WHERE从句,返回最后一个记录  
   
  如果加上从句筛选? 问题点数:50、回复次数:8Top

1 楼happyflystone(无枪的狙击手)回复于 2006-03-15 13:51:33 得分 30

ALTER   PROCEDURE   dbo.UserLogin(@UserName   nvarchar(50)='VIP01')  
  AS  
  declare   @StrSql       nvarchar(1024)  
  declare   @fond_no   nvarchar(50)  
  set   @strsql=''  
  set   @strsql='select   @fond_no=LoginName   from   dbo.[UserData-0]   WHERE   LoginName=''VIP01'''  
  exec   sp_executesql     @StrSql,N'@fond_no   nvarchar(50)   output',@fond_no   outputTop

2 楼lsqkeke(可可)回复于 2006-03-15 13:53:29 得分 20

set   @strsql='select   @fond_no=LoginName   from   dbo.[UserData-0]   WHERE   LoginName=''VIP01'''  
  exec   sp_executesql     @StrSql,N'@fond_no   nvarchar(50)   output',@fond_no   outputTop

3 楼ExeMan(愚公移山(笨)--精卫填海(傻))回复于 2006-03-15 13:54:18 得分 0

如果将'VIP01'改用传入的参数@UserName又将如何?这样行不通哦。  
  set   @strsql='select   @fond_no=LoginName   from   dbo.[UserData-0]   WHERE   LoginName='@UserName''Top

4 楼lsqkeke(可可)回复于 2006-03-15 13:54:28 得分 0

ALTER   PROCEDURE   dbo.UserLogin(@UserName   nvarchar(50)='VIP01')  
  AS  
  declare   @StrSql       nvarchar(1024)  
  declare   @fond_no   nvarchar(50)  
  set   @strsql=''  
  set   @strsql=N'select   @fond_no=LoginName   from   dbo.[UserData-0]   WHERE   LoginName=''VIP01'''  
  exec   sp_executesql     @StrSql,N'@fond_no   nvarchar(50)   output',@fond_no   output  
  Top

5 楼lsqkeke(可可)回复于 2006-03-15 13:55:11 得分 0

set   @strsql=N'select   @fond_no=LoginName   from   dbo.[UserData-0]   WHERE   LoginName='''+@UserName+''''Top

6 楼happyflystone(无枪的狙击手)回复于 2006-03-15 13:58:50 得分 0

如果将'VIP01'改用传入的参数@UserName又将如何?这样行不通哦。  
  set   @strsql='select   @fond_no=LoginName   from   dbo.[UserData-0]   WHERE   LoginName='@UserName''  
  ---  
   
  set   @strsql='select   @fond_no=LoginName   from   dbo.[UserData-0]   WHERE   LoginName='''+@UserName+''''Top

7 楼happyflystone(无枪的狙击手)回复于 2006-03-15 13:59:59 得分 0

ALTER   PROCEDURE   dbo.UserLogin(@UserName   nvarchar(50)='VIP01')  
  AS  
  declare   @StrSql       nvarchar(1024)  
  declare   @fond_no   nvarchar(50)  
  set   @strsql=''  
  set   @strsql='select   @fond_no=LoginName   from   dbo.[UserData-0]   WHERE   LoginName='''+@UserName+''''  
  exec   sp_executesql     @StrSql,N'@fond_no   nvarchar(50)   output,@userN   nvarchar(50)',@fond_no   output,@UserNameTop

8 楼ExeMan(愚公移山(笨)--精卫填海(傻))回复于 2006-03-15 14:02:08 得分 0

感谢!众人热情相教!  
  羞愧!我基础太差了!!Top

相关问题

  • 指点迷津
  • 指点迷津
  • 望指点迷津
  • 请高手指点迷津.
  • 高手指点迷津!!!!!
  • 请高手指点迷津
  • 请各位指点迷津!!
  • 高手请指点迷津...
  • 请各位指点迷津
  • 求高手指点迷津

关键词

  • fond
  • loginname
  • strsql
  • vip01
  • nvarchar
  • userdata
  • executesql
  • asdeclare
  • userlogin
  • username

得分解答快速导航

  • 帖主:ExeMan
  • happyflystone
  • lsqkeke

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo