select *এসকিউএল সার্ভার 2005-এ দেখাতে ব্যবহার করার সময় আমি একটি অদ্ভুত আচরণ লক্ষ্য করেছি ।
নীচের ক্যোয়ারীটি চালান এবং আপনি কী বলতে চাইছেন তা আপনি দেখতে পাবেন।
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[starTest]') AND type in (N'U'))
DROP TABLE [dbo].[starTest]
CREATE TABLE [dbo].[starTest](
[id] [int] IDENTITY(1,1) NOT NULL,
[A] [varchar](50) NULL,
[B] [varchar](50) NULL,
[C] [varchar](50) NULL
) ON [PRIMARY]
GO
insert into dbo.starTest
select 'a1','b1','c1'
union all select 'a2','b2','c2'
union all select 'a3','b3','c3'
go
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[vStartest]'))
DROP VIEW [dbo].[vStartest]
go
create view dbo.vStartest as
select * from dbo.starTest
go
go
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[vExplicittest]'))
DROP VIEW [dbo].[vExplicittest]
go
create view dbo.[vExplicittest] as
select a,b,c from dbo.starTest
go
select a,b,c from dbo.vStartest
select a,b,c from dbo.vExplicitTest
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[starTest]') AND type in (N'U'))
DROP TABLE [dbo].[starTest]
CREATE TABLE [dbo].[starTest](
[id] [int] IDENTITY(1,1) NOT NULL,
[A] [varchar](50) NULL,
[B] [varchar](50) NULL,
[D] [varchar](50) NULL,
[C] [varchar](50) NULL
) ON [PRIMARY]
GO
insert into dbo.starTest
select 'a1','b1','d1','c1'
union all select 'a2','b2','d2','c2'
union all select 'a3','b3','d3','c3'
select a,b,c from dbo.vStartest
select a,b,c from dbo.vExplicittest
শেষ 2 নির্বাচন বিবৃতি ফলাফল তুলনা করুন। আমি বিশ্বাস করি আপনি যা দেখতে পাবেন সেটি নামের পরিবর্তে সূচী দ্বারা রেফারেন্সিং কলামগুলি সিলেক্ট করার ফলাফল ।
আপনি যদি ভিউটি পুনর্নির্মাণ করেন তবে এটি আবার ঠিকঠাক হবে।
সম্পাদনা
এসকিউএল সার্ভার 2005-এর আকর্ষণীয় আচরণের আরও বিবরণে দেখার জন্য, আমি একটি পৃথক প্রশ্ন যুক্ত করেছি, * টেবিল থেকে * নির্বাচন করুন * টেবিল থেকে কোল্যা, কোলবি ইত্যাদি নির্বাচন করুন *