sql-server – T-SQL以特定顺序添加列

我对T-sql有点新,来自 MySQL的背景我仍然适应语法中的不同细微差别.

我想在特定的一个添加一个新的列.我发现,AFTER是一个有效的关键字,但我不认为这是正确的工作.

ALTER TABLE [dbo].[InvStockStatus]
ADD [Abbreviation] [nvarchar](32) DEFAULT '' NOT NULL ;

这是我当前的查询,它工作得很好,除了在表的末尾添加字段,Id喜欢在[Name]之后添加它.什么是语法im寻找代表这个?

解决方法

你不能这样做

例如,如果你有这样的表

create table TestTable(id1 int,id3 int)

并且您要在id1和id3之间添加另一列id2,那么这里是使用设计器后的sql Server在后台执行的操作

BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
CREATE TABLE dbo.Tmp_TestTable
    (
    id1 int NULL,id2 int NULL,id3 int NULL
    )  ON [PRIMARY]
GO
ALTER TABLE dbo.Tmp_TestTable SET (LOCK_ESCALATION = TABLE)
GO
IF EXISTS(SELECT * FROM dbo.TestTable)
     EXEC('INSERT INTO dbo.Tmp_TestTable (id1,id3)
        SELECT id1,id3 FROM dbo.TestTable WITH (HOLDLOCK TABLOCKX)')
GO
DROP TABLE dbo.TestTable
GO
EXECUTE sp_rename N'dbo.Tmp_TestTable',N'TestTable','OBJECT' 
GO
COMMIT

您可以看到如果您有大量数据,这可能是有问题的,为什么列位于何处?只是使用

select col1,col2,col3 from table

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...