sql-server – T-SQL以特定顺序添加列
发布时间:2020-12-12 16:29:34 所属栏目:MsSql教程 来源:网络整理
导读:我对T-SQL有点新,来自 MySQL的背景我仍然适应语法中的不同细微差别. 我想在特定的一个后添加一个新的列.我发现,AFTER是一个有效的关键字,但我不认为这是正确的工作. ALTER TABLE [dbo].[InvStockStatus]ADD [Abbreviation] [nvarchar](32) DEFAULT '' NOT NUL
我对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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |