2013-05-08 114 views
-1

我想在SQLServer数据库的表中插入一条记录。声明插入

的代码是:

INSERT INTO UserControlMaster (UsercontrolID,Usrid,ModuleID, Allow_add,Allow_edit,Allow_Delete) VALUES((select (max(UsercontrolID)+1) from UsercontrolMaster), 1, 2, 0,0,0) 

在执行时,它说

子查询在此方面不容许。只允许使用标量表达式 。

我在哪里错了?

+0

不允许你使用,你试图使用子查询 - 如错误信息说。看起来好像你在努力模拟一个自动递增的列;通常有其他的选择,但是DBMS的细节有所不同,我不使用SQL Server,所以我不知道你需要在那里做什么。 – 2013-05-08 06:18:48

回答

2

尝试这一个 -

INSERT INTO dbo.UserControlMaster 
(
     UsercontrolID 
    , Usrid 
    , ModuleID 
    , Allow_add 
    , Allow_edit 
    , Allow_Delete 
) 
SELECT 
     MAX(UsercontrolID) + 1 
    , 1 
    , 2 
    , 0 
    , 0 
    , 0 
FROM dbo.UsercontrolMaster