คำถามติดแท็ก sql-server

Microsoft SQL Server เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ใช้แท็กนี้สำหรับ SQL Server ทุกรุ่นรวมถึง Compact, Express, Azure, Fast-track, APS (เดิมคือ PDW) และ Azure SQL DW อย่าใช้แท็กนี้สำหรับ DBMS ประเภทอื่น (MySQL, PostgreSQL, Oracle, ฯลฯ ) อย่าใช้แท็กนี้สำหรับปัญหาเกี่ยวกับซอฟต์แวร์และการพัฒนาอุปกรณ์พกพาเว้นแต่จะเกี่ยวข้องโดยตรงกับฐานข้อมูล

11
คุณจะนำเข้าไฟล์ MS .sql ขนาดใหญ่ได้อย่างไร
ฉันใช้การเปรียบเทียบข้อมูล RedGate SQL และสร้างไฟล์. sql ดังนั้นฉันจึงสามารถเรียกใช้บนเครื่องท้องถิ่นของฉัน แต่ปัญหาคือไฟล์มีขนาดเกิน 300mb ซึ่งหมายความว่าฉันไม่สามารถคัดลอกและวางได้เนื่องจากคลิปบอร์ดไม่สามารถจัดการได้และเมื่อฉันพยายามเปิดไฟล์ใน Studio จัดการเซิร์ฟเวอร์ SQL ฉันได้รับข้อผิดพลาด เกี่ยวกับไฟล์ที่มีขนาดใหญ่เกินไป มีวิธีเรียกใช้ไฟล์. sql ขนาดใหญ่หรือไม่ ไฟล์นั้นมีข้อมูลสำหรับตารางใหม่สองตาราง
240 sql  sql-server  import 

20
คุณจะคืนชื่อคอลัมน์ของตารางได้อย่างไร
ฉันจะคืนชื่อคอลัมน์ของตารางโดยใช้ SQL Server 2008 ได้อย่างไร เช่นตารางที่มีคอลัมน์ - id, ชื่อ, ที่อยู่, ประเทศและฉันต้องการคืนค่าเหล่านี้เป็นข้อมูล
239 sql  sql-server  tsql 

12
สคริปต์เพื่อฆ่าการเชื่อมต่อทั้งหมดไปยังฐานข้อมูล (มากกว่า RESTRICTED_USER ROLLBACK)
ฉันมีฐานข้อมูลการพัฒนาที่ปรับใช้บ่อยครั้งจากโครงการฐานข้อมูล Visual Studio (ผ่านการสร้างอัตโนมัติ TFS) บางครั้งเมื่อฉันรันงานสร้างฉันได้รับข้อผิดพลาดนี้: ALTER DATABASE failed because a lock could not be placed on database 'MyDB'. Try again later. ALTER DATABASE statement failed. Cannot drop database "MyDB" because it is currently in use. ฉันลองสิ่งนี้: ALTER DATABASE MyDB SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE แต่ฉันยังไม่สามารถวางฐานข้อมูล (ฉันเดาว่านักพัฒนาส่วนใหญ่dboสามารถเข้าถึงได้) ฉันสามารถเรียกใช้SP_WHOและเริ่มต้นการเชื่อมต่อด้วยตนเองได้แต่ฉันต้องการวิธีอัตโนมัติในการสร้างอัตโนมัติ (แม้ว่าครั้งนี้การเชื่อมต่อของฉันจะเป็นเพียงหนึ่งเดียวบนฐานข้อมูลที่ฉันพยายามจะวาง) มีสคริปต์ที่สามารถลบฐานข้อมูลของฉันได้หรือไม่


4
ON [หลัก] หมายความว่าอย่างไร
ฉันกำลังสร้างสคริปต์การตั้งค่า SQL และฉันใช้สคริปต์ของคนอื่นเป็นตัวอย่าง นี่คือตัวอย่างของสคริปต์: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[be_Categories]( [CategoryID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_be_Categories_CategoryID] DEFAULT (newid()), [CategoryName] [nvarchar](50) NULL, [Description] [nvarchar](200) NULL, [ParentID] [uniqueidentifier] NULL, CONSTRAINT [PK_be_Categories] PRIMARY KEY CLUSTERED ( [CategoryID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = …

11
ตรวจสอบว่ามีแถวอยู่หรือไม่
ฉันต้องเขียนขั้นตอนการจัดเก็บ T-SQL ที่ปรับปรุงแถวในตาราง หากไม่มีแถวให้ใส่ลงไป ทุกขั้นตอนนี้ห่อด้วยธุรกรรม นี่เป็นระบบจองดังนั้นมันจะต้องเป็นอะตอมและเชื่อถือได้ จะต้องส่งคืนจริงหากธุรกรรมได้รับการยอมรับและจองเที่ยวบิน ฉันใหม่กับ T-SQLและไม่แน่ใจว่าจะใช้@@rowcountอย่างไร นี่คือสิ่งที่ฉันเขียนจนถึงตอนนี้ ฉันอยู่บนถนนที่ถูกต้องหรือไม่? ฉันแน่ใจว่าเป็นปัญหาง่ายสำหรับคุณ -- BEGIN TRANSACTION (HOW TO DO?) UPDATE Bookings SET TicketsBooked = TicketsBooked + @TicketsToBook WHERE FlightId = @Id AND TicketsMax < (TicketsBooked + @TicketsToBook) -- Here I need to insert only if the row doesn't exists. -- If …

14
อะไรคือความแตกต่างของประสิทธิภาพหลักระหว่างชนิดข้อมูล varchar และ nvarchar SQL Server?
ฉันกำลังทำงานบนฐานข้อมูลสำหรับเว็บแอปเล็ก ๆ SQL Server 2005ที่โรงเรียนของฉันโดยใช้ ฉันเห็นโรงเรียนแห่งความคิดสองแห่งเกี่ยวกับเรื่องvarcharvs nvarchar: ใช้จนกว่าคุณจะจัดการกับข้อมูลจำนวนมากสากลแล้วการใช้งานvarcharnvarchar เพียงใช้nvarcharกับทุกสิ่ง ฉันเริ่มเห็นข้อดีของการดู 2 ฉันรู้ว่า nvarchar ใช้พื้นที่มากเป็นสองเท่า แต่นั่นก็ไม่ได้เป็นเรื่องใหญ่เพราะนี่จะเก็บข้อมูลสำหรับนักเรียนสองสามร้อยคนเท่านั้น สำหรับฉันดูเหมือนว่ามันจะง่ายที่สุดที่จะไม่กังวลเกี่ยวกับมันและเพียงแค่อนุญาตให้ทุกอย่างใช้ nvarchar หรือมีบางอย่างที่ฉันขาดหายไป?

3
การใช้ธุรกรรมที่ถูกต้องใน SQL Server
ฉันมี 2 คำสั่งและต้องการทั้งสองอย่างดำเนินการอย่างถูกต้องหรือไม่มีพวกเขาดำเนินการ ดังนั้นฉันคิดว่าฉันต้องการธุรกรรม แต่ฉันไม่รู้วิธีใช้อย่างถูกต้อง ปัญหาของสคริปต์ต่อไปนี้คืออะไร BEGIN TRANSACTION [Tran1] INSERT INTO [Test].[dbo].[T1] ([Title], [AVG]) VALUES ('Tidd130', 130), ('Tidd230', 230) UPDATE [Test].[dbo].[T1] SET [Title] = N'az2' ,[AVG] = 1 WHERE [dbo].[T1].[Title] = N'az' COMMIT TRANSACTION [Tran1] GO INSERTคำสั่งจะถูกดำเนินการ แต่UPDATEคำสั่งที่มีปัญหา ฉันจะใช้สิ่งนี้เพื่อย้อนกลับทั้งสองคำสั่งหากมีข้อผิดพลาดในการดำเนินการ?

8
คุณจะแสดงการสืบทอดในฐานข้อมูลได้อย่างไร
ฉันคิดเกี่ยวกับวิธีแสดงโครงสร้างที่ซับซ้อนในฐานข้อมูล SQL Server พิจารณาแอปพลิเคชั่นที่ต้องการจัดเก็บรายละเอียดของตระกูลวัตถุที่แชร์คุณสมบัติบางอย่าง แต่มีหลายโปรแกรมที่ไม่เหมือนกัน ตัวอย่างเช่นแพคเกจประกันภัยเชิงพาณิชย์อาจรวมถึงความรับผิด, มอเตอร์, ทรัพย์สินและความคุ้มครองครอบคลุมภายในบันทึกนโยบายเดียวกัน มันเป็นเรื่องเล็กน้อยที่จะนำสิ่งนี้ไปใช้ใน C # และอื่น ๆ เนื่องจากคุณสามารถสร้างนโยบายที่มีการรวบรวมส่วนต่างๆโดยที่ส่วนจะได้รับการถ่ายทอดตามความจำเป็นสำหรับความคุ้มครองประเภทต่างๆ อย่างไรก็ตามฐานข้อมูลเชิงสัมพันธ์ดูเหมือนจะไม่อนุญาตสิ่งนี้ได้อย่างง่ายดาย ฉันเห็นว่ามีสองตัวเลือกหลัก: สร้างตารางนโยบายจากนั้นตารางส่วนที่มีฟิลด์ทั้งหมดที่จำเป็นสำหรับรูปแบบที่เป็นไปได้ทั้งหมดซึ่งส่วนใหญ่จะเป็นโมฆะ สร้างตารางนโยบายและตารางส่วนต่างๆจำนวนมากหนึ่งตารางสำหรับความคุ้มครองแต่ละประเภท ตัวเลือกทั้งสองนี้ดูเหมือนจะไม่เป็นที่น่าพอใจโดยเฉพาะอย่างยิ่งเมื่อจำเป็นต้องเขียนข้อความค้นหาในทุกส่วนซึ่งจะเกี่ยวข้องกับการรวมจำนวนมากหรือการตรวจสอบโมฆะจำนวนมาก แนวปฏิบัติที่ดีที่สุดสำหรับสถานการณ์นี้คืออะไร

10
ฉันจะหนีจากวงเล็บเหลี่ยมในส่วนคำสั่ง LIKE ได้อย่างไร
ฉันกำลังพยายามกรองรายการด้วยกระบวนงานที่เก็บไว้โดยใช้ Like คอลัมน์คือ varchar (15) รายการที่ฉันพยายามกรองมีชื่อวงเล็บในตาราง ตัวอย่างเช่น WC[R]S123456. ถ้าฉันทำLIKE 'WC[R]S123456'มันจะไม่ส่งคืนสิ่งใด ฉันพบข้อมูลบางอย่างเกี่ยวกับการใช้ESCAPEคำหลักด้วยLIKEแต่ฉันไม่เข้าใจวิธีการใช้มันในการปฏิบัติต่อวงเล็บเหลี่ยมเป็นสตริงปกติ

9
การลบรายการล็อกอินและรหัสผ่านที่จดจำไว้ใน SQL Server Management Studio
ฉันเพิ่งใช้แล็ปท็อปสำรองของ บริษัท (ซึ่งมีการตั้งค่าผู้ใช้ทั่วไป) ในขณะที่ฉันกำลังซ่อมแซม ฉันได้ตรวจสอบตัวเลือก "จดจำรหัสผ่าน" ใน SQL Server Management Studio เมื่อเข้าสู่ระบบฐานข้อมูล ฉันต้องล้างข้อมูลการเข้าสู่ระบบและรหัสผ่านที่ฉันใช้เพื่อป้องกันบุคคลต่อไปที่จะใช้แล็ปท็อปจากการใช้ชื่อเข้าสู่ระบบและรหัสผ่านของฉัน ฉันจะทำสิ่งนี้ได้อย่างไร

10
ฉันจะวางข้อ จำกัด foreign key ได้อย่างไรหากมีอยู่ในเซิร์ฟเวอร์ sql
ฉันสามารถวางตารางหากมีอยู่โดยใช้รหัสต่อไปนี้ แต่ไม่ทราบว่าจะทำอย่างไรกับข้อ จำกัด : IF EXISTS(SELECT 1 FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'TableName') AND type = (N'U')) DROP TABLE TableName go ฉันยังเพิ่มข้อ จำกัด โดยใช้รหัสนี้: ALTER TABLE [dbo].[TableName] WITH CHECK ADD CONSTRAINT [FK_TableName_TableName2] FOREIGN KEY([FK_Name]) REFERENCES [dbo].[TableName2] ([ID]) go


14
การเปลี่ยนสตริงที่คั่นด้วยเครื่องหมายจุลภาคเป็นแต่ละแถว
ฉันมีตาราง SQL ดังนี้: | SomeID | OtherID | Data +----------------+-------------+------------------- | abcdef-..... | cdef123-... | 18,20,22 | abcdef-..... | 4554a24-... | 17,19 | 987654-..... | 12324a2-... | 13,19,20 มีแบบสอบถามที่ฉันสามารถดำเนินการแบบสอบถามเช่นSELECT OtherID, SplitData WHERE SomeID = 'abcdef-.......'ที่ส่งกลับแต่ละแถวเช่นนี้ | OtherID | SplitData +-------------+------------------- | cdef123-... | 18 | cdef123-... | 20 | cdef123-... …
234 sql-server  tsql  split  comma 

5
การเปรียบเทียบสตริงที่มีความสำคัญของ Case SQL
คุณจะเปรียบเทียบสตริงได้อย่างไรเพื่อให้การเปรียบเทียบนั้นเป็นจริงเฉพาะถ้ากรณีของสตริงแต่ละรายการเท่ากัน ตัวอย่างเช่น: Select * from a_table where attribute = 'k' ... จะส่งคืนแถวที่มีแอตทริบิวต์ 'K' ฉันไม่ต้องการพฤติกรรมนี้
234 sql  sql-server 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.