alter table tb drop col alter table tb add col varchar(50) null
DROP 索引 UPDATE TB SET 字段 = NULL
大叔 据说用 XML更新的速度还可以创建一个临时表 然后向临时表里面varchar(50) 的字段插入空值 然后向实体表里面插入。类似这样Create PROCEDURE UP_Book_Insert ( @BookId INT, @ChapterXml XML ) AS BEGIN CREATE TABLE #table ( ChapterId INT, ChapterName VARCHAR(255), Price INT ); INSERT #table SELECT * FROM ( SELECT X.C.value('Id[1]', 'int') AS ChapterId, X.C.value('Name[1]', 'varchar(255)') AS ChapterName, X.C.value('Price[1]','int') AS Price FROM @ChapterXml.nodes('Chapter') AS X(C) --注意:这里的X(C)命名空间是需要的 ) t; INSERT INTO tbChapter(BookId,ChapterId,ChapterName,Price) SELECT @BookId,ChapterId,ChapterName,Price from #table; END
UPDATE TB SET [varchar(50)字段] = NULL
好像不必建立索引了,因为没用
alter table tb drop column col2
我觉得是删了这个字段,再加个默认值为null的字段。纯乱猜,勿喷。
alter table tb add col varchar(50) null
UPDATE TB SET 字段 = NULL
(
@BookId INT,
@ChapterXml XML
)
AS
BEGIN
CREATE TABLE #table
(
ChapterId INT,
ChapterName VARCHAR(255),
Price INT
);
INSERT #table
SELECT *
FROM (
SELECT X.C.value('Id[1]', 'int') AS ChapterId,
X.C.value('Name[1]', 'varchar(255)') AS ChapterName,
X.C.value('Price[1]','int') AS Price
FROM @ChapterXml.nodes('Chapter') AS X(C) --注意:这里的X(C)命名空间是需要的
) t;
INSERT INTO tbChapter(BookId,ChapterId,ChapterName,Price)
SELECT @BookId,ChapterId,ChapterName,Price from #table;
END