カーソルとして実行する必要があります。各 PK 制約の名前が一貫しており、テーブル名に基づいていると仮定すると、次のようなことができます (テストされていないため、タイプミスや漠然とした構文エラーが含まれている可能性があります)。
DECLARE mycursor CURSOR FOR SELECT name FROM sysobjects WHERE name LIKE 'Company$%'
OPEN CURSOR
FETCH NEXT FROM mycursor INTO @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = N'ALTER TABLE QUOTENAME(' + @tablename + ') DROP CONSTRAINT PK_' + @tablename
EXEC sp_ExecuteSQL @sql
FETCH NEXT FROM mycursor INTO @tablename
END
CLOSE CURSOR
DEALLOCATE CURSOR
テーブル名に基づいて PK の名前が付けられていない場合は、これを変更して、sysconstraints または sysindexes に基づいてクエリを実行し、実際の PK 名を取得する必要があります。