admin

插入语句

sql

我想将值(“ testu”,“ testp”,“ testname”,“ testsur”,“ testemail”)插入[dbo]。[用户]

我正在使用Microsoft SQL Server 2012,并且每当我尝试查询类似内容时

INSERT INTO [dbo].[users]
VALUES ('testu', 'testp', 'testname', 'testsur', 'testemail')

我在“ INSERT”语句上收到一条错误消息:该语句在上下文中无法识别。这是什么意思?我该如何解决?

CREATE TABLE [dbo].[users] (
    [username] VARCHAR (40) NOT NULL,
    [password] VARCHAR (40) NOT NULL,
    [name]     VARCHAR (40)  NOT NULL,
    [surname]  VARCHAR (40) NOT NULL,
    [email]    VARCHAR (40) NOT NULL,
PRIMARY KEY CLUSTERED ([username] ASC)
);

阅读 192

收藏
2021-07-01

共1个答案

admin

我正在使用 [TestDB]* 名称在数据库中运行您的语句 *

USE [TestDB]
GO

CREATE TABLE [dbo].[users] 
(
    [username] VARCHAR (40) NOT NULL,
    [password] VARCHAR (40) NOT NULL,
    [name]     VARCHAR (40)  NOT NULL,
    [surname]  VARCHAR (40) NOT NULL,
    [email]    VARCHAR (40) NOT NULL,
PRIMARY KEY CLUSTERED ([username] ASC)
);

GO

INSERT INTO [dbo].[users] VALUES ('testu', 'testp', 'testname', 'testsur', 'testemail')

接下来,我将尝试在表中插入另一行,如下所示

INSERT INTO [dbo].[users] VALUES ('testuwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww', 'testp', 'testname', 'testsur', 'testemail')

这是一个错误,指示[UserName]列值的长度大于创建DDL时指定的长度。

解决方案

A)将[UserName]的长度限制在40个字符以内(在此示例中)。

B)或通过使用 ALTER 语句来增加[UserName]列的长度。

例如

ALTER TABLE [dbo].[users]
ALTER COLUMN [username] VARCHAR (100) NOT NULL

注意〜这里[用户名]列仅作为指出错误的参考。其他列也可能发生这种情况。因此,只需验证发生在哪一列。

2021-07-01