sql怎样往数据库中所有表增加一列并贴加数据

sql怎样往数据库中所有表增加一列并贴加数据,第1张

可以组合语句。

先从systables里将所有的表名称取出来。

然后循环取出每一个表的名字,然后拼接成这样的语句

select @cmd = 'alter table ' + @tablename + ' add columnname columntype'

exec(@cmd)

select @cmd = 'update ' + @tablename + ' set columnname = value'

exec(@cmd)

create view view_person

as

select ROW_NUMBER() over(order By astrName) as ID,--想按什么排序就order By什么

 astrName as strName,

convert(nvarchar(20),CardID) as nLOCardNo 

from view_one as a inner join (select distinct CardID,EmpSysID from MJ_MjData) 

as b on aEmpSysID=bEmpSysID

视图的创建和表类似,有创建视图、使用视图、修改视图和删除视图。另外,可以通过更新视图(包括插入、修改和删除)数据来修改基本表中的数据。只能在当前数据库中创建视图。在一个视图中最多用1024列,视图中记录的行数限制由基表中记录数目决定。方法/步骤1在打开SQL Server Managemenet Studio窗口,在对象资源管理器窗口依次站看数据库——新建的数据库节点2鼠标右键单击视图节点,在d出的快捷菜单中选择新建视图命令,打开视图设计器窗口和添加表对话框3从添加表对话框中选择建立新视图的基表,视图和函数。单击添加按钮(在这里可以选择一张表单击依次添加,也可以按住Ctrl键同时选择多张表),将表添加到视图设计器中。添加完毕后,关闭添加表对话框,如果关闭添加表对话框后,仍需要添加表,单击视图是机器工具栏上的添加表按钮,即可d出添加表对话框4根据新建视图的需要,从表中选择视图引用的列。将列加入视图有3中方式:可以再关系图中选中相应表的相应列左边的复选框来完成;也可以铜鼓哦选择条件窗格中的列栏上的列名来完成;还可以再SQL窗格中输入SELECT语句来选择视图需要的列。5在条件窗格中的筛选器栏中设置过滤记录的条件。6设置玩此后,在视图设计器窗口中单击工具栏中的验证SQL语法按钮检查T-SQL语法。确认语法正确后,单击执行 SQL按钮预览视图返回的结果,7最后,单击保存按钮,d出选择名称对话框,在该对话框中为视图命名,谈后点击确定按钮,将视图保存到数据库中。注意事项视图的名称必须遵循标示符的命名规则可以讲视图创建在其他视图上,SQL Server 2008中允许32层的视图嵌套。不能再视图上创建全文索引,不能讲规则、默认绑定在视图上。不能再临时表上创建视图、也不能创建临时视图

对于 单表的视图, 插入/修改 数据是没有问题的。 (只要你不做特别的设置)

对于多表的视图, *** 作的时候,会存在一定的问题。

下面是一个例子:

1> CREATE VIEW v_main_sub AS

2> SELECT

3>   test_mainid AS main_id,

4>   test_mainvalue AS main_value,

5>   test_subid  AS  sub_id,

6>   test_subvalue AS sub_value

7> FROM

8>   test_main, test_sub

9> WHERE

10>   test_mainid = test_submain_id;

11> go

1> SELECT FROM v_main_sub;

2> go

main_id     main_value sub_id      sub_value

----------- ---------- ----------- ----------

1 ONE                  1 ONEONE

2 TWO                  2 TWOTWO

(2 行受影响)

1> UPDATE v_main_sub

2> SET main_value='ONX'

3> WHERE main_id = 1;

4> go

(1 行受影响)

1> UPDATE v_main_sub

2> SET sub_value='ONXONX'

3> WHERE main_id = 1;

4> go

(1 行受影响)

1> DELETE FROM v_main_sub WHERE main_id = 1;

2> go

消息 4405,级别 16,状态 1,服务器 GMJ-PC\SQLEXPRESS,第 1 行

视图或函数 'v_main_sub' 不可更新,因为修改会影响多个基表。

-- 这个触发器, 只测试输出, 不删除数据。

1> CREATE TRIGGER  v_main_sub_trigger

2> ON  v_main_sub

3> INSTEAD OF DELETE

4> AS

5> DECLARE

6>   @main_id  INT,

7>   @sub_id   INT;

8> BEGIN

9>   SELECT @main_id=main_id, @sub_id=sub_id FROM deleted;

10>

11>

12>   PRINT(@main_id);

13>   PRINT(@sub_id);

14> END;

15> go

1> DELETE FROM v_main_sub WHERE main_id = 1;

2> go

1

1

(1 行受影响)

1> DELETE FROM v_main_sub WHERE sub_id = 1;

2> go

1

1

(1 行受影响)

对于多表关联的视图, 删除的时候,需要人为的去判断

例如当 主表 和 子表,都只有一条记录的情况下。

无法判断 本次删除, 是要删除掉一个子表的记录,留下主表的。

还是 主表 子表的数据,一同删除。

以上就是关于sql怎样往数据库中所有表增加一列并贴加数据全部的内容,包括:sql怎样往数据库中所有表增加一列并贴加数据、sqlserver数据库新创建视图,增加一列自增id ,列名就为ID,小生语句在补充,求正确sql语句,谢谢、数据库2000的视图怎么添加一个列,而且打开的视图跟2008的不一样,怎么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9837258.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存