我在寫一個將客戶數據插入MSSQL數據庫的查詢。非常基本。插入「壞」數據到SQL數據庫?
INSERT INTO USERS(newid(),'BOB''S SELECT MARKETING')
我確信可以逃避我的報價,但服務器仍然看到SELECT作爲保留關鍵字:
不幸的是,我想什麼時候做下面遇到了一個問題。我不想在括號中包裝一堆保留字。有沒有一種更簡潔的方式讓數據庫中的數據完好無損,而且不會被括號弄亂?
我感謝您的幫助。
謝謝!
我在寫一個將客戶數據插入MSSQL數據庫的查詢。非常基本。插入「壞」數據到SQL數據庫?
INSERT INTO USERS(newid(),'BOB''S SELECT MARKETING')
我確信可以逃避我的報價,但服務器仍然看到SELECT作爲保留關鍵字:
不幸的是,我想什麼時候做下面遇到了一個問題。我不想在括號中包裝一堆保留字。有沒有一種更簡潔的方式讓數據庫中的數據完好無損,而且不會被括號弄亂?
我感謝您的幫助。
謝謝!
這裏有幾種語法可供選擇。使用代碼示例中的那個,您忘記了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'
你缺少的關鍵詞VALUES
:
INSERT INTO USERS VALUES (NEWID(),'BOB''S SELECT MARKETING');
杜。爲什麼我沒有看到?接得好!還有用戶之後的空間 - 不確定是否重要,但你的觀點是正確的。 – David 2012-03-28 16:24:56
該字符串看起來非常非常錯誤。 – uvesten 2012-03-28 16:16:34
@graysheep你如何執行對你的服務器? SSMS?客戶端應用程序?如果它是一個客戶端應用程序,我們可以看到該代碼嗎?如果你在SSMS中直接運行,會發生什麼? SQL Server中沒有任何東西可以防止你插入一個包含單詞「SELECT」的字符串,所以其他的東西是你的問題... – 2012-03-28 16:19:54
@uvensten - 那個字符串是完全正確的''在'鮑勃'是SQL Server的正確方法是使用撇號(單引號)。我假設這是SQL Server由於標籤。如果它是另一個關係數據庫,那麼你可能會做些什麼。 – David 2012-03-28 16:20:38