大家指点迷津:exec sp_executesql 与WHERE从句筛选?
过程如下:
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




