我当前正在尝试在Visual Studio中执行查询以将用户添加到我的数据库中。
我已将数据库添加到服务器资源管理器中,然后右键单击它并选择了New query
在我的表中有一个名为dbo.User的表,并且我正在尝试执行此查询。
INSERT INTO User (Username, Password, Color)
VALUES ('Craig', 'password', 'Green')
Intellisense甚至识别出User
,并且由于某种原因Password is highlighted as a keyword
为什么将红线用户User
放在INSERT INTO User
中说Incorrect syntax near 'User'
答案 0 :(得分:6)
用户是SQL Server的保留关键字。要解决此问题,请将关键字放在方括号中。请尝试以下操作:
INSERT INTO [User] (Username, Password, Color)
VALUES ('Craig', 'password', 'Green')
答案 1 :(得分:1)
将表重命名为非保留字。我通常以复数形式命名表格。原因之一是因为复数之间的冲突较少(想到VALUES
)。另一个是因为它们包含实体的多个副本,所以复数似乎是适当的。
所以,这应该起作用:
INSERT INTO Users (Username, Password, Color)
VALUES ('Craig', 'password', 'Green');
保留字列表在documentation中。
我也强烈建议您不要在这样的表中存储自由文本密码。用户键入密码时,应该对密码进行编码,这样您的应用程序将永远看不到它。用户经常在多个系统上重复使用密码,因此在任意位置使用自由文本密码都是一个安全漏洞。