2017-02-01 140 views
0
CREATE TABLE tblTesting 
(
    col1 INT NOT NULL , 
    col2 VARCHAR(50) 
); 

INSERT tblTesting 
VALUES (4, 'test'), 
     (1, 'test2'), 
     (4, 'test'), 
     (1, 'test2'); 

col1  col2 
----------- ----------- 
4   test 
1   test2 
4   test 
1   test2 

这是允许duplicates.But它不应该,需要以相同的顺序插入记录。我怎样才能实现它?插入记录,而不允许重复

+3

这里没有重复。而SQL表没有任何内在的顺序。你能分享一个你试图让这个问题更清楚的结果吗? – Mureinik

+0

表没有顺序。您在选择时指定订单。否则,优化器将返回行而不强加任何顺序。这会混淆多核机器中的行,或者仅仅是因为一个操作员更改了订单 –

+0

插入它应如下所示: - col1 col2 ----------- ----- --------------------------------------------- 4 test 1 test2但它不应该允许像这样如下所示: - col1 col2 ----------- ----------------------- --------------------------- 4 test 1 test2 4 test 1 test2 – Senthil

回答

0

正如其他评论者所说,SQL表的顺序并不重要,因为根据您的语句,索引等检索数据。如果您需要以特定顺序返回数据,则只需告诉SQL

select col1 
     ,col2 
from tblTesting 
order by col1 
     ,col2 

如果你不想让特定的值重复,你可以添加需要的唯一值或一组值的限制,每这里的文件:就在为了与order by子句返回它: https://msdn.microsoft.com/en-us/library/ms190024.aspx?f=255&MSPPError=-2147217396