!!!SQL难题。。。如何在运行期间用sql语句在当前表中插入一个字段???高分求救。。。。。

sos_zqx 2001-04-23 04:24:00
我想在 sql 表中插入一个字段,sql语句好象只有添加和删除字段的语句。。请问各位大虾。。有和良策,小弟在此先谢了。。。给高分。。。
...全文
429 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hp1200 2001-07-29
  • 打赏
  • 举报
回复
up
hp1200 2001-07-29
  • 打赏
  • 举报
回复
up
sos_zqx 2001-04-27
  • 打赏
  • 举报
回复
看来只好如此了。。。。
wwq_jeff 2001-04-24
  • 打赏
  • 举报
回复
可以先取得字段名的(有排序)集合:
select name from syscolumns
where id = object_id(N'[dbo].[TableName]') order by name

然后再由这个集合组成SQL语句:
select <字段集合> from tableName2 where ....
binghuodao 2001-04-24
  • 打赏
  • 举报
回复
如果你非要插到中间恐怕只能新建另外一个表,然后把数据倒过去了
sos_zqx 2001-04-24
  • 打赏
  • 举报
回复
TO wwq_jeff(飞雪):
问题是我的表的字段是是动态增加的,而且增加的字段的字段名事先无法知道(由另一个表间接完成字段的添加。。。也就是说对该表的查询和字段插入在两个不同的模块中完成)。所以只能用select * form tablename 类的语句查询,用你所说的方法好象行不通。。。难道我还要来两次查询,第一次获得所有的字段名,第二次再对字段排序吗。。???
nononono 2001-04-23
  • 打赏
  • 举报
回复
wwq_jeff(飞雪)说的对。但如果你的程序是用select *来选择数据的,的确需要一个确定的字段顺序。不知道有没有办法直接插入字段。

我原来的做法是建立一个新表,然后把数据添进来。其实这样做的效率也不会低很多。
DeD 2001-04-23
  • 打赏
  • 举报
回复
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
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
CREATE TABLE dbo.Tmp_test
(
id int NOT NULL,
dd char(10) NULL,
epl text NOT NULL
) ON [PRIMARY]
TEXTIMAGE_ON [PRIMARY]
GO
IF EXISTS(SELECT * FROM dbo.test)
EXEC('INSERT INTO dbo.Tmp_test (id, epl)
SELECT id, epl FROM dbo.test TABLOCKX')
GO
DROP TABLE dbo.test
GO
EXECUTE sp_rename N'dbo.Tmp_test', N'test', 'OBJECT'
GO
COMMIT
wwq_jeff 2001-04-23
  • 打赏
  • 举报
回复
Alter Table tablename
Add columnname columntype Null

插在什么位置无所谓的,完全可以在select 中将它提前的
sos_zqx 2001-04-23
  • 打赏
  • 举报
回复
to BreatIvan:
这样只能添加在表的最后面。。。我想把他插到表的中间。。。
BrentIvan 2001-04-23
  • 打赏
  • 举报
回复
Alter Table tablename
Add columnname columntype Null

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧