1)我设计了一个表,前三行是主键;
PK 字节序号 int 4 0
PK 比特位名称 varchar 16 0
PK 比特位数字 varchar 16 0
含义         varchar 300 1
维护人         varchar 50 1
2)针对此表我写了个存储过程
CREATE PROCEDURE INSERT_RECORD
(
@TABLENAME VARCHAR(100),
@number INT,
@bitname VARCHAR(16),
@bitnumber VARCHAR(16),
@meaning VARCHAR(300),
@maintain VARCHAR(50)
 )
 AS
BEGIN TRANSACTION exec('
INSERT INTO '+@TABLENAME+'
(
字节序号,
比特位名称,
比特位数字,
含义,
维护人
)
VALUES
(
'+@number+',
'+@bitname+',
'+@bitnumber+',
'+@meaning+' ,
'+@maintain+' )
')
IF @@ERROR=0 
 BEGIN 
   COMMIT TRANSACTION     
   RETURN 0 
 END Else 
 BEGIN 
   ROLLBACK TRANSACTION 
   RETURN -1 
 END
GO3)然后我用以下的语句执行存储过程
INSERT_RECORD test, 21211,'"p1"','"d1"','"ahah"','"lzb"'
奇怪的事情发生了:
在数据库1中 能够 执行成功
在数据库2中 居然 不能 执行成功:报以下错误:
服务器: 消息 128,级别 15,状态 1,行 13
在此上下文中不允许使用 'p1'。此处只允许使用常量、表达式或变量。不允许使用列名。4) 然后我又新键了一个数据库3,把同样的表与存储过程考到对应的地方,发现在数据库3中依然不能执行成功5)请问:为什么会发生这种情况,在数据库1中能够执行成功,在数据库2、数据库3中不能执行成功??
究竟是什么导致此现象发生,请江湖人士一定要帮忙啊???