执行DDL时的索引错误

时间:2018-01-12 14:36:35

标签: sql-server tsql ddl

当我在sql server中运行下面提到的DDL时,我收到的错误是:

  

"警告!聚簇索引的最大密钥长度为900字节。   索引' TBL_MyTable'最大长度为1278字节。对于一些   结合大值,插入/更新操作将失败。"

只是想知道如何解决此错误?

感谢。

BEGIN

DECLARE @constraint_name nvarchar(256)
DECLARE @table_name nvarchar(256)
DECLARE @col_name nvarchar(256)


SET @table_name = N'TBL_MyTable'
SET @col_name = N'myDate'

SELECT @constraint_name = CONSTRAINT_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE 
    where TABLE_NAME = @table_name AND COLUMN_NAME = @col_name  

    IF @constraint_name IS NOT NULL
        BEGIN
            EXEC('ALTER TABLE [dbo].['+ @table_name +'] DROP CONSTRAINT ' + @constraint_name);          
        END 
            EXEC('ALTER TABLE [dbo].['+ @table_name +'] ALTER COLUMN myDate DATE NOT NULL');            

            EXEC('ALTER TABLE [dbo].['+ @table_name +'] ADD CONSTRAINT 
            [PK_TBL_MyTable] 
            Primary Key 
                 (  column1,
                    myDate,
                    column2,
                    column3,
                    column4,
                    column5,
                    column6)')

END

0 个答案:

没有答案