Nie można utworzyć więcej niż 1024 kolumn dla widoku.
http://msdn.microsoft.com/en-us/library/ms143432.aspx
jak to test:
uruchomić te dwa procedura tworzenia tabeli w n liczba kolumn
przechowywane Procedura 1:
CREATE Proc [dbo].[CreateTableWithNColumnsPrefixX]
(@TableName nvarchar(100),@NumofCols int)
AS
BEGIN
DECLARE @i INT
DECLARE @MAX INT
DECLARE @SQL VARCHAR(MAX)
DECLARE @j VARCHAR(10)
DECLARE @len int
SELECT @i=1
SELECT @[email protected]
SET @SQL='CREATE TABLE ' + @TableName + '('
WHILE @i<[email protected]
BEGIN
select @j= cast(@i as varchar)
SELECT @SQL= @SQL+'X'[email protected] +' NVARCHAR(500) , '
SET @i = @i + 1
END
select @len=len(@SQL)
select @SQL = substring(@SQL,0,@len-1)
SELECT @SQL= @SQL+ ')'
exec (@SQL)
END
GO
przechowywane Procedura 2:
CREATE Proc [dbo].[ CreateTableWithNColumnsPrefixA]
(@TableName nvarchar(100),@NumofCols int)
AS
BEGIN
DECLARE @i INT
DECLARE @MAX INT
DECLARE @SQL VARCHAR(MAX)
DECLARE @j VARCHAR(10)
DECLARE @len int
SELECT @i=1
SELECT @[email protected]
SET @SQL='CREATE TABLE ' + @TableName + '('
WHILE @i<[email protected]
BEGIN
select @j= cast(@i as varchar)
SELECT @SQL= @SQL+'A'[email protected] +' NVARCHAR(500) , '
SET @i = @i + 1
END
select @len=len(@SQL)
select @SQL = substring(@SQL,0,@len-1)
SELECT @SQL= @SQL+ ')'
exec (@SQL)
END
GO
Utwórz tabelę t1 z 1024 kolumnami przy użyciu 1. SP.
Utwórz tabelę t2 z 1024 kolumnami za pomocą 2nd SP.
Teraz uruchom następujące zapytanie:
Create view TestView
As
Select * from t1,t2
To daje następujący błąd
Msg 4505, Level 16, State 1, Procedure TestView, Line 3
CREATE VIEW failed because column 'A1' in view 'TestView' exceeds the maximum of 1024 columns.
więcej niż prawdopodobne, jeśli pochodzą wszędzie blisko granicy, czy baza danych ma kilka wad konstrukcyjnych. – HLGEM
Zgadzam się w pewnym sensie, ale nie znasz kontekstu. Dostarczamy interfejs z uproszczonym sposobem dla użytkowników końcowych, aby utworzyć własny widok niektórych tabel i kolumn. Teoretycznie użytkownik końcowy mógłby potencjalnie utworzyć niecodzienne widoki. Chcę mieć pewność, że damy im możliwość robienia tego, czego potrzebują, ale także ograniczyć problemy do minimum. – sugarcrum