相关疑难解决方法(0)

何时使用自动递增的主键,何时不使用?

我试图找出决定是否添加自动递增整数作为表的主键的"最佳实践".

假设我有一个包含化学元素数据的表格.每个元素的原子序数是唯一的,永远不会改变.因此,不是为每列使用自动递增整数,而是使用原子序数可能更有意义,对吗?

如果我有一张书桌,那也是如此吗?我应该使用ISBN还是主键的自动递增整数?或者包含每个人的SSN的员工表?

sql database-design

55
推荐指数
3
解决办法
3万
查看次数

我应该有一个专用的主键字段吗?

我正在设计一个由Web应用程序使用的小型SQL数据库.

假设一个特定的表有一个Name字段,其中不允许两行具有相同的值.但是,用户可以随时更改"名称"字段.

此表中的主键将用作其他表中的外键.因此,如果将Name字段用作主键,则需要将任何更改传播到其他表.另一方面,唯一性要求将自动处理.

我的直觉是添加一个整数字段作为主键,可以由数据库自动填充.有这个领域有什么意义,还是浪费时间?

database-design primary-key

18
推荐指数
3
解决办法
3972
查看次数

SQL Server更新触发器,仅获取已修改字段

我知道COLUMNS_UPDATED,我需要一些快速的快捷方式(如果有人做了,我已经制作了一个,但如果有人可以节省我的时间,我会恭维它)

我需要基本上只有更新列值的XML,我需要这个用于复制目的.

SELECT*FROM inserted为我提供了每一列,但我只需要更新的列.

像下面这样......

CREATE TRIGGER DBCustomers_Insert
    ON DBCustomers
    AFTER UPDATE
AS
BEGIN
    DECLARE @sql as NVARCHAR(1024);
    SET @sql = 'SELECT ';


    I NEED HELP FOR FOLLOWING LINE ...., I can manually write every column, but I need 
    an automated routin which can work regardless of column specification
    for each column, if its modified append $sql = ',' + columnname...

    SET @sql = $sql + ' FROM inserted FOR XML RAW';

    DECLARE @x as XML;
    SET @x …
Run Code Online (Sandbox Code Playgroud)

sql sql-server triggers database-replication sql-update

17
推荐指数
3
解决办法
5万
查看次数