pConn->Execute("CREATE PROC MMdb.dbo.UpdateCoding\
@TableName nvarchar(20),\
@Types nvarchar(3),\
@Number nvarchar(6),\
 @Text nvarchar(20)\
AS\
declare @Sqlstr1 nvarchar(1000)\
declare @Sqlstr2 nvarchar(1000)\
SET @Sqlstr1='UPDATE MMdb.dbo.' +@TableName+ ' SET Text=' +@Text+ ' WHERE Types=' +@Types+ ',Number=' +@Number\
EXEC(@Sqlstr1)\
IF @@rowcount=0\
SET @Sqlstr2='INSERT INTO MMdb.dbo.' +@TableName+ 'VALUES (' +@Types+ ',' +@Number+','+@Text\
EXEC(@Sqlstr2)",NULL,adCmdText);
这句执行异常不,求人帮忙看下这句创建存储过程为何失败,我就是想实现动态更新或插入记录到指定表。

解决方案 »

  1.   

    这个地方吧
    CREATE PROC MMdb.dbo.UpdateCoding--MMdb.dbo.
      

  2.   


    这段话可以通过但是执行有问题....
    SET @Sqlstr1='UPDATE MMdb.dbo.' +@TableName+ ' SET Text=' +@Text+ ' WHERE Types=' +@Types+ ' AND Number=' +@Number
    在查询分析器中执行这段过程会报这句有错误
    服务器: 消息 207,级别 16,状态 3,行 1
    [Microsoft][ODBC SQL Server Driver][SQL Server]列名 '中国' 无效。@RETURN_VALUE = N/A
    @Text值为"中国"
      

  3.   

    SET @Sqlstr1='UPDATE MMdb.dbo.' +@TableName+ ' SET Text=''' +@Text+ ''' WHERE Types=' +@Types+ ' AND Number=' +@Number
    如果字段类型时字符串的,动态sql语句里要加' ,因为再引号内所以要进行转义,所以就是''
      

  4.   

    SET @Sqlstr1='UPDATE MMdb.dbo.' +@TableName+ ' SET Text=''' +@Text+ ''' WHERE Types=''' +@Types+ ''' AND Number=' +ltrim(@Number)