converti meu banco de dados de acesso ao sql server ... agora quero replicá-lo e o banco de dados está apresentando erro de chave primária ... escrevi o código abaixo para adicionar uma nova coluna em todo o banco de dados, mas não consigo converter o ' coluna autoid' como chave primária...por favor, ajude a resolvê-lo.
USE Aidherpnew
GO
IF OBJECT_ID(N'tempdb..#TempSysTableNames') IS NOT NULL
BEGIN
DROP TABLE #TempSysTableNames
END;
DECLARE @ColumnName VARCHAR(250) = 'autoid'
,@DataType VARCHAR(250) = 'INT'
,@DefaultValue VARCHAR(250) = '1'
,@SQL VARCHAR(8000)
,@MaxRowNum INT
,@I INT = 1;
SELECT '[' + DB_NAME() + '].[' + OBJECT_SCHEMA_NAME([object_id],DB_ID()) + '].[' + name + ']' AS [name]
,ROW_NUMBER() OVER (ORDER BY [create_date]) AS RowNum
INTO #TempSysTableNames
FROM sys.tables
WHERE [type] = 'U';
SET @MaxRowNum = (SELECT MAX(RowNum)
FROM #TempSysTableNames);
WHILE (@I <= @MaxRowNum)
BEGIN
SET @SQL = (SELECT 'ALTER TABLE ' + [name] + ' ADD ' + @ColumnName + ' ' + @DataType + ' NOT NULL DEFAULT ' + @DefaultValue + ';'
FROM #TempSysTableNames
WHERE RowNum = @I);
PRINT(@SQL);
EXECUTE(@SQL);
SET @I += 1;
END;
Se você quiser transformar a nova coluna em
PRIMARY KEY
tudo o que você precisa fazer é especificar isso em seu script de adição de coluna, assumindo que suas tabelas ainda não tenham uma definida. Você pode fazer isso assim:Aqui está mais alguma documentação sobre como criar chaves primárias .