将“坏”数据插入SQL数据库?

时间:2012-03-28 16:13:01

标签: sql sql-server

我正在编写一个将客户数据插入MSSQL数据库的查询。非常基本的。

不幸的是,我在尝试执行以下操作时遇到了问题:

INSERT INTO USERS(newid(),'BOB''S SELECT MARKETING')

我确保逃避我的引号,但服务器仍然将SELECT视为保留关键字。我不想在括号中包含一堆保留字。是否有一种更简洁的方法可以将我的数据保存在数据库中并且不会被括号括起来?

感谢您的帮助。

谢谢!

2 个答案:

答案 0 :(得分:4)

您遗漏了关键字VALUES

INSERT INTO USERS VALUES (NEWID(),'BOB''S SELECT MARKETING');

答案 1 :(得分:3)

这里有几种语法选择。使用代码示例中的那个,您忘记了VALUES关键字。例如:

declare @users table
(
    id uniqueidentifier,
    name varchar(50)
)
insert into @users values (newid(), 'BOB''S SELECT MARKETING')

如果要在表的每一列中插入一个值,也可以使用insert into / select语句,如下所示:

declare @users table
(
    id uniqueidentifier,
    name varchar(50)
)
insert into @users 
select newid(), 'BOB''S SELECT MARKETING'

或者您可以使用insert into / select语句并指定要插入的列:

declare @users table
(
    id uniqueidentifier,
    name varchar(50)
)
insert into @users (id, name)
select newid(), 'BOB''S SELECT MARKETING'