列名无效的菜鸟问题。
SQL语句:
CREATE PROCEDURE AddTM
(
@number int,
@paperTitle varchar(50),
@questionType varchar(100)
)
AS
exec(' insert into ' +@paperTitle+ ' (questionID) select top ' +@number+ ' 题号 From ' +@questionType+ ' Order By NewID() ')
exec(' update ' +@paperTitle+ ' set questionType= ' +@questionType )
GO
运行时+@questionType这里无效 .insert可以把题号插入表中,但无法update以插入表中题号所对应题型
问题点数:100、回复次数:7Top
1 楼wu1974yu()回复于 2006-06-03 19:49:22 得分 0
自己先顶下 ,在线等高手Top
2 楼wu1974yu()回复于 2006-06-03 19:52:59 得分 0
questionType是nvarchar
他们说如果是int就可以了
现在是nvarchar 该怎么写啊Top
3 楼xxuu503(中国没有prison break只是因为the company不让拍)回复于 2006-06-03 20:22:44 得分 0
exec(' update ' +@paperTitle+ ' set questionType= ' +@questionType )
这一句改为:
exec(' update ' +@paperTitle+ ' set questionType= ' +char(39) +@questionType +char(39) )Top
4 楼xxuu503(中国没有prison break只是因为the company不让拍)回复于 2006-06-03 20:24:12 得分 0
实际上是拼字符串的原理
SQL里边字符串的边界要有单引号(':CHAR(39))Top
5 楼wu1974yu()回复于 2006-06-03 20:34:45 得分 0
提示char附近有错误Top
6 楼wu1974yu()回复于 2006-06-03 20:37:14 得分 0
把questionType改成int就可以了Top
7 楼hello1985()回复于 2006-06-03 20:48:24 得分 100
exec("update "+@paperTitle+" set questionType= '" +@questionType+"'")Top




