2015-11-30 128 views
0

我正在使用SQL Server 2008.我試圖向表中插入字符串,但只插入了部分字符串。我檢查過這是否是SQL注入風險。如何解決或避免這個問題?無法將此字符串插入列。只插入字符串的一部分

insert into tble (col1, col2, col3) 
values (23, 34, "out of 8 works, 5 works are completed"); 

只有Out of 8 Works插入,, 5 works are completed跳過

+1

用單個替換雙引號。 插入tble(col1,col2,col3)值(23,34,'8件作品中,5件作品完成'); – BeanFrog

+0

'聲明@temp表格 (val nvarchar(max)) 插入到@temp(val)值('8個作品中,5個作品完成');' – wiretext

+2

col3的數據類型是什麼? 'varchar(15)'是我的猜測。如果是這樣,使它'varchar(100)'看起來像字符串截斷給我。 – Raj

回答

2

雙引號才起作用不要在INSERT上傳遞一個字符串 - 從應用程序中調用它。字符串可能會被截斷,因爲col3沒有被定義足夠長的時間 - 也請檢查。

0

試試這個..如果QUOTED_IDENTIFIERS是關閉的,如果你擔心SQL注入,然後

insert into table(col1,col2,col3) values (23,34,'out of 8 works, 5 works are completed'); 
0

更改表格中col3的大小(根據您的字符串大小)。 您可以使用下面的查詢更改:

ALTER TABLE tble

改變列COL3爲nvarchar(100)[空|不爲空]

+0

在Sql Server中沒有修改。 https://msdn.microsoft.com/en-IN/library/ms190273.aspx ALTER TABLE table_name ALTER COLUMN column_name datatype ... –