有人能帮我把主键列数据复制到同一表的另一列吗?示例:学生表
ID PKNameageIID
ID PK
Name
age
IID
我想看看 IID 列为null,然后我希望它用同一个表的主键列值进行更新,并寻找一些通用的方法来实现这一点,因为我们对多个表有这样的要求。我们还有一张这样的tabledep公司
DID PKDNAMEIID
DID PK
DNAME
我正在努力,但没有找到合适的方法来做这件事。
bq9c1y661#
创建一个如下所示的存储过程,并将表名、主键列名和copy to列名传递给它。它将创建查询并执行。
CREATE PROCEDURE [dbo].[UpdateColumnValue] @tableName as varchar(100), @copyFromColumnName as varchar(100), @copyToColumnName as varchar(100)ASBEGIN DECLARE @query as varchar(max); SET @query = ' UPDATE ' + @tableName + ' SET ' + @copyToColumnName + ' = ' + @copyFromColumnName + ' WHERE ' + @copyToColumnName + ' IS NULL'; EXECUTE(@query);END
CREATE PROCEDURE [dbo].[UpdateColumnValue]
@tableName as varchar(100),
@copyFromColumnName as varchar(100),
@copyToColumnName as varchar(100)
AS
BEGIN
DECLARE @query as varchar(max);
SET @query = ' UPDATE ' + @tableName +
' SET ' + @copyToColumnName + ' = ' + @copyFromColumnName +
' WHERE ' + @copyToColumnName + ' IS NULL';
EXECUTE(@query);
END
ss2ws0br2#
您可以添加 Foreign Key 对同一表格的引用:
Foreign Key
CREATE TABLE DEPT (ID INT Primary Key,Name VARCHAR(50),age INT ,IID INT FOREIGN KEY REFERENCES DEPT(ID))
CREATE TABLE DEPT (
ID INT Primary Key,
Name VARCHAR(50),
age INT ,
IID INT FOREIGN KEY REFERENCES DEPT(ID))
通过使用 UPDATE 声明:
UPDATE
UPDATE DEPTSET IID=IDWHERE IID IS NULL
UPDATE DEPT
SET IID=ID
WHERE IID IS NULL
2条答案
按热度按时间bq9c1y661#
创建一个如下所示的存储过程,并将表名、主键列名和copy to列名传递给它。它将创建查询并执行。
ss2ws0br2#
您可以添加
Foreign Key
对同一表格的引用:通过使用
UPDATE
声明: