2012-06-14 55 views
-1

當我創建一個表,我把一個int,這是正確的:創建表 - int中引號?

insert into Employee_T 
(Emp_Id) 
values 
(
'100' /*WILL THERE BE A PROBLEM IF I PUT IT LIKE THIS, IE WITH THE QUOTES*/? 
) 
+0

是的,但是爲什麼? –

回答

1

沒有問題:字符串文字將被強制轉換爲int的插入。

通常我不會做我自己,因爲這是一種誤導,但...

2

這是完全有效的,但完全沒有必要,要加上引號字面的整數。

它將被解析爲一個字符串並自動轉換爲整數。

看到它聯機工作:sqlfiddle

+0

嘿!感謝您的幫助和鏈接。我喜歡它在一個地方有很多數據庫。 – user1455169

1

沒有,

這應該只是罰款。 sql服務器將解析字符串並將其轉換爲整數。 當然這不是最佳的性能, 它也可能會導致問題,如果某些格式如1.000或12,000是在字符串中...

1

不,這不是問題。我的意思是,它不會導致錯誤。也許轉換類型只會帶來一點性能開銷。它幾乎沒有必要,可能會在高負荷時出現。

0

引用用於類型爲charvarchar的情況。如果您使用的是int,則不需要爲引入值插入引號。您應該使用以下查詢: -

insert into Employee_T (Emp_Id) values (100); 

然而,SQLServer的支持報價也爲int。但如果您不使用int的報價,這是一個很好的做法。