sql server对字段的添加修改删除、以及字段的说明
来源:asp之家 发布时间:2012-01-05 18:50:52
代码如下:
--新增表字段
ALTER procedure [dbo].[sp_Web_TableFiled_Insert]
(
@TableName varchar(100),
@FieldName varchar(100),
@FieldExplain varchar(200),
@DataType varchar(100),
@ConnectTableName varchar(100),
@FieldLength int,
@NewsID int output
)
as
begin transaction mytran
declare @errorSum int
if not exists (SELECT * FROM syscolumns where id=object_id(@TableName) AND name=@FieldName)
begin
insert tb_TableField
(
TableName,
FieldName,
FieldExplain,
DataType,
ConnectTableName,
FieldLength,
UserSetSign
)
values
(
@TableName,
@FieldName,
@FieldExplain,
@DataType,
@ConnectTableName,
@FieldLength,
'1'
)
declare @sql varchar(8000)
--判断类型
if(@DataType='decimal')
begin
set @sql = 'alter table ' + @TableName +' add ' + @FieldName +' ' + @DataType +'(' +Convert(varchar,@FieldLength)+',2'+')'
end
else if(@DataType='varchar')
begin
set @sql = 'alter table ' + @TableName +' add ' + @FieldName +' ' + @DataType +'(' +Convert(varchar,@FieldLength)+')'
end
else
begin
set @sql = 'alter table ' + @TableName +' add ' + @FieldName +' ' + @DataType
end
exec(@sql)
EXECUTE sp_addextendedproperty N'MS_Description', @FieldExplain, N'user', N'dbo', N'Table', @TableName, N'column' , @FieldName;
set @errorSum=@errorSum+@@error
set @NewsID=0;
end
else
begin
set @NewsID=1;
end
if(@errorSum>0)
begin
rollback tran
end
else
begin
commit tran mytran
end
--修改表字段
ALTER procedure [dbo].[sp_Web_TableFiled_Update]
(
@TableName varchar(100),
@FieldName varchar(100),
@FieldExplain varchar(200),
@DataType varchar(100),
@ConnectTableName varchar(100),
@FieldLength int,
@ID int,
@NewsID int output
)
as
begin transaction mytran
declare @fname varchar(100)
declare @errorSum int
--先取出表中以前的字段名称
select @fname=FieldName from tb_TableField where ID=@ID
declare @pstid int
declare @sql varchar(8000)
--再根据字段名称取出tb_PaySystemToLocation中对应的ID
select @pstid=ID from tb_PaySystemToLocation where LocationField=@fname
set @sql = 'sp_rename '+CHAR(39)+@TableName+'.['+@fname+']'+CHAR(39)+',' +char(39)+@FieldName+char(39)+',' + char(39)+'COLUMN' +CHAR(39)
exec(@sql)
update tb_TableField
set TableName=@TableName,
FieldName=@FieldName,
FieldExplain=@FieldExplain,
DataType=@DataType,
ConnectTableName=@ConnectTableName,
FieldLength=@FieldLength
where ID=@ID
--修改字段说明
EXECUTE sp_updateextendedproperty N'MS_Description', @FieldExplain, N'user', N'dbo', N'Table', @TableName, N'column' , @FieldName;
--EXEC sp_updateextendedproperty 'MS_Description',@FieldExplain,'user',dbo,'table',@TableName,'column',@FieldName
set @NewsID=0;
set @errorSum=@errorSum+@@error
if(@@ERROR>0)
begin
rollback tran
end
else
begin
commit tran mytran
end
-删除表字段
ALTER procedure [dbo].[sp_Web_TableFiled_Delete]
(
@ID int,
@NewsID int output
)
as
begin transaction mytran
declare @fname varchar(100)
declare @tablename varchar(100)
declare @pstid int
declare @sql varchar(8000)
declare @errorSum int
--取出字段名,表名
select @fname=FieldName,@tablename=TableName from tb_TableField where ID=@ID
--取出tb_PaySystemToLocation的ID
select @pstid=ID from tb_PaySystemToLocation where LocationField=@fname
delete from tb_TableField where ID=@ID
set @sql='ALTER TABLE ' +@tablename+ ' DROP COLUMN '+ @fname
exec(@sql)
set @errorSum=@errorSum+@@error
set @NewsID=0;
if(@errorSum>0)
begin
rollback tran
end
else
begin
commit tran mytran
end
猜你喜欢
- 使用MySQL,安全问题不能不注意。以下是MySQL提示的23个注意事项:1、如果客户端和服务器端的连接需要跨越并通过不可信任的网络,那么就
- 1. TokuFT file system space is really low and access is restricte
- 前言随时随地发现新鲜事!微博带你欣赏世界上每一个精彩瞬间,了解每一个幕后故事。分享你想表达的,让全世界都能听到你的心声!今天我们通过pyth
- 密码保护是注册过程中的关键环节,尤其是对帐户安全级别比较高的网站,尤其在账号被盗或者涉及安全登录等问题的情况下,密码保护问题作为用户身份识别
- 实例如下:<!DOCTYPE html><html><head><script src="
- 历时半年,我独自一人完成了一个局级单位的管理信息系统,共发布BETA版29次,正式版本3次。ASP+ORACLE环境,285个ASP文件,功
- 删除表数据操作清空所有表记录:TRUNCATE TABLE your_table_name;或者批量删除满足条件的表记录:BEGIN &nb
- 假设你已经做好了如下配置和尝试在Extensions中安装好了Remote -SSH添加了你要访问的服务器ip地址等信息,并拥有了一个con
- 本文实例讲述了Python基于opencv实现的简单画板功能。分享给大家供大家参考,具体如下:import cv2import numpy
- 如何在pytorch中指定CPU和GPU进行训练,以及cpu和gpu之间切换由CPU切换到GPU,要修改的几个地方:网络模型、损失函数、数据
- 实例如下所示:#!/usr/bin/python# -*- coding:utf8 -*-from selenium import webd
- 一、StreamVR问题:1.运行项目时不显示手柄控制器:出现这种情况一般会在头显中提示不能加载按键配置文件,出现这种提示时请直接打开ste
- SQL Server重置IDENTITY属性种子值-- IDENTITY重置种子DBCC CHECKIDENT(表名, RESEED, 0)
- 相同点都属于序列类型的数据所谓序列类型的数据,就是说它的每一个元素都可以通过指定一个编号,行话叫做“偏移量”的方式得到,而要想一次得到多个元
- 通过这个布局思路来做一个简单的后台管理系统也是OK的,大家可以参考一下啦!话不多说,还是先来梳理一下需要的第三方模块。PyQ5 的UI界面布
- 本文实例为大家分享了OpenCV实现图片亮度增强或减弱的具体代码,供大家参考,具体内容如下对每个像素点的三通道值进行同步放大,同时保持通道值
- 1、配置Git签名(1)语法$ git config 配置文件作用域 user.name '用户名'$ git config
- 您是否知道 OpenCV 具有执行行人检测的内置方法?OpenCV 附带一个预训练的 HOG + 线性 SVM 模型,可用于在图像和视频流中
- 快速回顾一下RabbitMQ服务器的安装:sudo apt-get install rabbitmq-serverPython使用Rabbi
- 锁的概述 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题:丢失更新A,B两个用户读同一数据并进行修改,其中