সাধারণ পরীক্ষা-বিছানা:
USE tempdb;
GO
/*
This DROP TABLE should not be necessary, since the DROP SCHEMA
should drop the table if it is contained within the schema, as
I'd expect it to be.
*/
IF COALESCE(OBJECT_ID('tempdb..#MyTempTable'), 0) <> 0
DROP TABLE #MyTempTable;
IF EXISTS (SELECT 1 FROM sys.schemas s WHERE s.name = 'SomeSchema')
DROP SCHEMA SomeSchema;
GO
CREATE SCHEMA SomeSchema AUTHORIZATION [dbo]
CREATE TABLE SomeSchema.#MyTempTable /* specifying the schema
should not be necesssary since
this statement is executed inside
the context of the CREATE SCHEMA
statement
*/
(
TempTableID INT NOT NULL IDENTITY(1,1)
, SomeData VARCHAR(50) NOT NULL
);
GO
INSERT INTO tempdb.SomeSchema.#MyTempTable (SomeData) VALUES ('This is a test');
SELECT *
FROM tempdb.SomeSchema.#MyTempTable;
GO
SELECT *
FROM sys.objects o
INNER JOIN sys.schemas s ON o.schema_id = s.schema_id
WHERE s.name = 'SomeSchema';
SELECT s.name
, o.name
FROM sys.objects o
INNER JOIN sys.schemas s ON o.schema_id = s.schema_id
WHERE s.name = 'dbo'
AND o.name LIKE '%MyTempTable%';
DROP SCHEMA SomeSchema;
DROP TABLE #MyTempTable;
উপরে বর্ণিত স্কিমার অধীনে টেম্পডিবিতে একটি অস্থায়ী সারণী তৈরি করা উচিত ; তবে তা হয় না। পরিবর্তে টেবিলটি স্কিমে তৈরি করা হয়েছে । #MyTempTable
SomeSchema
dbo
এই প্রত্যাশিত আচরণ? আমি বুঝতে পারি এটি অবশ্যই স্কিমা-নির্দিষ্ট টেম্প টেবিলগুলির ব্যবহারের চারপাশে একটি প্রান্ত-কেস; তবে এটি খুব ভাল যদি ইঞ্জিনটি স্কিমা-বেঁধে অস্থায়ী টেবিল তৈরি করার চেষ্টা করার সময় ত্রুটি সরবরাহ করেছিল বা আসলে এটি ডিডিএলে উল্লিখিত স্কিমার সাথে আবদ্ধ করে।
এছাড়াও, আমার বর্তমানে এসকিউএল সার্ভার 2014 বা 2016 এ অ্যাক্সেস নেই; এটি কি এই প্ল্যাটফর্মে প্রত্যাশার মতো কাজ করে?