あなたは、ビューのために1024の以上の列を作成することはできません。
http://msdn.microsoft.com/en-us/library/ms143432.aspx
それをテストする方法:
実行カラム
手順1ストアド
のn個の数のテーブルを作成するためのこれら二つの手順:手順2ストアド
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
:
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
最初のSPを使用して1024列のテーブルt1を作成します。
2番目のSPを使用して1,024列のテーブルt2を作成します。
ここで、次のクエリを実行します。
Create view TestView
As
Select * from t1,t2
それは次のようなエラーにあなたがどこにも近い限界に来ている場合は、データベースは、いくつかの構造的欠陥を持っている可能性が高い
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.
詳細を与えるだろう。 – HLGEM
ある意味で同意しますが、あなたは文脈を知らないのです。エンドユーザーが特定のテーブルや列のビューを作成するための簡単な方法でインターフェイスを提供しています。理論的には、エンドユーザは潜在的に管理不能なビューを作成する可能性があります。私は彼らに必要なことをする能力を与え、問題を最小限に抑えたいと思っています。 – sugarcrum