创建一个包含五列A,B,C,D和E的表,其中varchar(100)作为其数据类型。表名称为My_table 编写一个名为Update_Records的存储过程,它将接受1个参数。
@col_name varchar(100)
如果我将任何列名称传递给此过程,它将检查该列是否已存在于表中。如果存在,它将打印'Column already exists'。如果不存在,您将更改My_table并添加该列。输出将是:'表格改变'
例如,如果我将存储过程称为
Exec Update_Records ‘B’
输出将是:
Column already exists.
Exec Update_Records ‘N’
输出将是:
Table Altered
代码
ALTER PROC Update_records (@col_name VARCHAR(100))
AS
BEGIN
IF EXISTS (SELECT *
FROM my_table)
BEGIN
PRINT 'already exists'
END
ELSE
BEGIN
PRINT 'Table Altered'
END
UPDATE my_Table
SET @col_name = @col_name
END
答案 0 :(得分:0)
Alter
语句添加列而不是Update
语句类似这样的事情
IF COL_LENGTH('dbo.my_table', @col_name) IS NOT NULL
BEGIN
PRINT 'Column already exists'
END
ELSE
BEGIN
SET @col_name = QUOTENAME(@col_name)
EXEC ('Alter Table my_table ADD '+@col_name+' varchar(100)')
PRINT 'Table Altered'
END