syntax error converting the varchar value 'a' to a column of data type int'
select * from client where clientid in (select clientid from sale where paystate='已付' and meettime>=@firdate and meettime<=@secdate and dogid in (select dogid from dog where @Fieldname=1) )
如果@fieldname='a'(传递的是字段名)那么将提示
syntax error converting the varchar value 'a' to a column of data type int'
的字段的类型 为bit 长度为1
为什么?
问题点数:10、回复次数:4Top
1 楼icevi(按钮工厂)回复于 2002-03-29 17:28:24 得分 5
用动态SQL来做吧
declare @Strsql varchar(8000)
select @strsql=''
select @strsql='select * from client where clientid in (select clientid from sale where paystate='已付' and meettime>=@firdate and meettime<=@secdate and dogid in (select dogid from dog where '+@Fieldname+'=1) )'
exec (strsql)
Top
2 楼warning(爱就爱了)回复于 2002-03-29 17:28:26 得分 5
exec('select * from client where clientid in (select clientid from sale where paystate='已付' and meettime>=@firdate and meettime<=@secdate and dogid in (select dogid from dog where '+@fieldname+'=1')Top
3 楼noall()回复于 2002-03-29 17:37:20 得分 0
用动态也试过。这样了,出现同样的问题。
SELECT @SQLTXT="SELECT * FROM CLIENT WHERE CLIENTID "
SELECT @SQLTXT =@SQLTXT+" in (select clientid from sale where paystate='已付' and meettime>="+QUOTENAME(CONVERT(VARCHAR(20),@FIRDATE,120),'''')+" and meettime<="+QUOTENAME(CONVERT(VARCHAR(20),@SECDATE,120),'''')+ " and dogid in (select dogid from dog where"+QUOTENAME( @fieldname,'''')+"=1) )"
exec(@SQLTXT)Top
4 楼noall()回复于 2002-03-31 09:02:52 得分 0
换成这样子就不会出错了。
SELECT @SQLTXT=" select client.* from client join sale on client.clientid=sale.clientid "+
" join dog on sale.dogid=dog.dogid where sale.paystate='已付' and dog."+@fieldname+"=1 and sale.meettime>="+
QUOTENAME(CONVERT(VARCHAR(20),@FIRDATE,120),'''')+
" and sale.meettime<="+QUOTENAME(CONVERT(VARCHAR(20),@SECDATE,120),'''')
给份吧Top
相关问题
- alter table table1 alter column column1 varchar(10),column2 varchar(10) ??
- VARCHAR超过255在COLUMN中怎么输入?
- ?:sql语句将column的类型从varchar(20)转成varchar(30)又不丢失数据?
- convert(varchar(5),sdate,11)=''
- Text和Varchar??
- nvarchar和varchar问题
- Varchar的问题,急!!!!!
- date类型到varchar
- 我把excel文件的内容导入到sqlserver中去,调试成功,但是column的顺序乱掉了,而且column的类型是varchar的,但是导进去后20050606的值
- 用odbc连接*MDB 出错 line 27 column 413 ;incorrect syntax,如何处理,另:access 做后台,用pb做前台开发有何优缺点




