2015-03-19 45 views
-1

我已经在数据库中创建了一个表。然而,我忘了我的“invoiceID”列设置为自动递增,我希望编辑的列名“inv_ID”更新列名并将其设置为自动增量时正在执行批处理时发生错误

CREATE TABLE [dbo].[Order] (
    EXEC sp_rename '[inv_Id]', '[invoiceID]', 'COLUMN', INT NOT NULL,;  
    [inv_date] DATE NOT NULL, 
    [cust_Id] INT NOT NULL, 
    PRIMARY KEY CLUSTERED ([inv_Id] ASC) 

); 

错误消息:

An error occurred while the batch was being executed. 
+0

您正在使用哪个数据库? – 2015-03-19 07:50:01

+0

我正在使用Microsoft Visual Studio,本地数据库命名为:Data.mdf – user4562396 2015-03-19 08:14:44

回答

0

它看起来你这里有两个问题:

1)如何改变使用sp_rename列名:

你可以做到这一点使用:

EXEC sp_rename '<oldname>', '<newname>', 'COLUMN';

2)如何添加auto-increment。这实际上在this SO question中得到了解答,但如果你想在没有数据丢失的情况下做到这一点,那会有点痛苦。

+0

对于(1),我在“EXEC”附近得到错误“SQL80001:错误的语法”,我编辑了上面的代码;如果我错了, ....谢谢= D – user4562396 2015-03-19 10:01:01

+0

您是否阅读过关于sp_rename的MSDN文档?这是对存储过程的调用。不要将它添加到CREATE语句中。您没有添加新表,是吗? – 2015-03-19 13:01:26

+0

我正在使用本地数据库,我的数据源是“(LocalDB)\ v11.0; AttachDbFilename =”C:\ Users \ xchoo \ Documents \ Visual Studio 2012 \ Projects \ Data.mdf“,然后在连接到数据库引擎的实例时将此数据源作为服务器名称,然后选择窗口身份验证。 (按照sp_rename源文件) – user4562396 2015-03-19 16:07:42

相关问题