问题是这样的:
在程序中写的sql语句是带参数的,如:
string s="update aaa set id=@id,name=@name,sex=@sex";
然后通过SqlCommand来对各个参数进行赋值等操作,可是,我想看看执行的时候这个sql语句是什么样的,也就是说想拿到查询分析器中去执行一下,该怎么看啊?带参数的设断点的话,看到的这个sql语句也是="update aaa set id=@id,name=@name,sex=@sex";
这也没办法执行啊,还有就是,不知道这个SqlCommand.Parameters.Add(参数) 这句话如果将值加到sql语句中会变成什么样子啊?
这个语句是通过SqlCommand来加变量的,而普通的是就在sql中拼接,直接拼接的就可以知道sql执行的什么样,可是这种带参数的,怎么知道sql语句最终是什么样啊?我的意思就是:
在程序中加了断点之后,跟踪sql语句时,
如果id,name,sex三个变量在程序中付了值都知道,那么:
我知道这个语句在执行时,是什么样子(可以拿到查询分析器中去执行):
string s="update aaa set id='"+id+"',name='"+name+"',sex='"+sex"'";
而不知道这个语句在执行时,是什么样子?
string s="update aaa set id=@id,name=@name,sex=@sex";
这三个参数:@id,@name,@sex是通过SqlCommand加入到sql中的,在查看sql语句的时候,sql始终是="update aaa set id='"+id+"',name='"+name+"',sex='"+sex"'";
请大家执教,该怎么能看到这种带参书的sql语句啊?
在程序中写的sql语句是带参数的,如:
string s="update aaa set id=@id,name=@name,sex=@sex";
然后通过SqlCommand来对各个参数进行赋值等操作,可是,我想看看执行的时候这个sql语句是什么样的,也就是说想拿到查询分析器中去执行一下,该怎么看啊?带参数的设断点的话,看到的这个sql语句也是="update aaa set id=@id,name=@name,sex=@sex";
这也没办法执行啊,还有就是,不知道这个SqlCommand.Parameters.Add(参数) 这句话如果将值加到sql语句中会变成什么样子啊?
这个语句是通过SqlCommand来加变量的,而普通的是就在sql中拼接,直接拼接的就可以知道sql执行的什么样,可是这种带参数的,怎么知道sql语句最终是什么样啊?我的意思就是:
在程序中加了断点之后,跟踪sql语句时,
如果id,name,sex三个变量在程序中付了值都知道,那么:
我知道这个语句在执行时,是什么样子(可以拿到查询分析器中去执行):
string s="update aaa set id='"+id+"',name='"+name+"',sex='"+sex"'";
而不知道这个语句在执行时,是什么样子?
string s="update aaa set id=@id,name=@name,sex=@sex";
这三个参数:@id,@name,@sex是通过SqlCommand加入到sql中的,在查看sql语句的时候,sql始终是="update aaa set id='"+id+"',name='"+name+"',sex='"+sex"'";
请大家执教,该怎么能看到这种带参书的sql语句啊?
sql server自带的工具..中文名不知道叫啥..profiler.exe就这个..你打开试试就知道了.可以跟踪sql
file-->new-->trace
连接完后.
run执行你的查询..然后回到profiler中看一下
感觉在sql语句,不容易进行跟踪动态型的.
感觉可以通过存储过程接收变量赋值,然后select,这样可以得到数据
===
请问:sql server2000中有那个吗?我怎么找不到啊?
另外SQL2000自带的查询分析器也有调试功能。具体看起可以在解决方案那么查看。
调试存储过程是要求你输入那些必须输入的参数才能调试的。如果你里面有用到Exec执行组合SQL语句。
那么可以在一定场合中加入print @strWhere进行查看你的SQL执行语句。
string str_sql = update aaa set id=id,name=name,sex=sex;
File.AppendAllText(File_Path, strSql);...........
WHERE name='PinviteMatchInfo'AND type='P')
DROP PROCEDURE PinviteMatchInfo
go
create procedure PinviteMatchInfo
@Jop varchar(30),
@WorkMode tinyint,
@JopMajor varchar(30),
as DECLARE @SQL NVARCHAR(500)
set @SQL='select ApplyJopID,InviteJopID from ApplyJopinfo AS a INNER JOIN IndiviInfo AS b ON (Jop= '+@Jop+' or Jop=不限) and '
set @SQL=@SQL+'(a.WorkMode='+@WorkMode+'or a.WorkMode=0 )'
set @SQL=@SQL+' and (a.JopMajor='+@JopMajor+' or a.JopMajor=不限 )'
exec @SQL
print @SQL exec PinviteMatchInfo '首席代表、总经理','1'
WHERE name='PinviteMatchInfo'AND type='P')
DROP PROCEDURE PinviteMatchInfo
go create procedure PinviteMatchInfo
@Jop varchar(30),
@WorkMode tinyint,
@JopMajor varchar(30),
as DECLARE @SQL NVARCHAR(500)
set @SQL='select ApplyJopID,InviteJopID from ApplyJopinfo AS a INNER JOIN IndiviInfo AS b ON (Jop= '+@Jop+' or Jop=不限) and '
set @SQL=@SQL+'(a.WorkMode='+@WorkMode+'or a.WorkMode=0 )'
set @SQL=@SQL+' and (a.JopMajor='+@JopMajor+' or a.JopMajor=不限 )'
exec @SQL
print @SQL exec PinviteMatchInfo '首席代表、总经理','1'