DBMS / sql /compat_2022_csv_seed.sql
vkhoa2110
Deploy SQL Server demo Space
f53fbd9
:setvar DemoDatabase "CustomerAIDemo2022"
:setvar CsvPath "D:\DSA\Demo_DBMS\data\customer_feedback.csv"
IF DB_ID(N'$(DemoDatabase)') IS NULL
BEGIN
EXEC(N'CREATE DATABASE [$(DemoDatabase)]');
END
GO
USE [$(DemoDatabase)];
GO
-- Drop dependent tables first to avoid FK conflicts when reseeding.
IF OBJECT_ID(N'dbo.RealFeedbackEmbedding', N'U') IS NOT NULL
DROP TABLE dbo.RealFeedbackEmbedding;
GO
IF OBJECT_ID(N'dbo.RealEmbeddingMetadata', N'U') IS NOT NULL
DROP TABLE dbo.RealEmbeddingMetadata;
GO
IF OBJECT_ID(N'dbo.FeedbackEmbedding', N'U') IS NOT NULL
DROP TABLE dbo.FeedbackEmbedding;
GO
IF OBJECT_ID(N'dbo.CustomerFeedback', N'U') IS NOT NULL
DROP TABLE dbo.CustomerFeedback;
GO
IF OBJECT_ID(N'dbo.CustomerFeedbackStage', N'U') IS NOT NULL
DROP TABLE dbo.CustomerFeedbackStage;
GO
IF OBJECT_ID(N'dbo.QueryEmbedding', N'U') IS NOT NULL
DROP TABLE dbo.QueryEmbedding;
GO
CREATE TABLE dbo.CustomerFeedback
(
FeedbackId INT IDENTITY(1,1) NOT NULL
CONSTRAINT PK_CustomerFeedback PRIMARY KEY CLUSTERED,
MaskedCustomerId NVARCHAR(30) NOT NULL,
Product NVARCHAR(100) NOT NULL,
CustomerSegment NVARCHAR(50) NOT NULL,
Region NVARCHAR(50) NOT NULL,
Channel NVARCHAR(50) NULL,
RiskLevel NVARCHAR(20) NULL,
CreatedAt DATETIME2(0) NOT NULL,
SourceIssueGroup NVARCHAR(80) NOT NULL,
FeedbackText NVARCHAR(MAX) NOT NULL
);
GO
CREATE INDEX IX_CustomerFeedback_BusinessFilters
ON dbo.CustomerFeedback
(
CustomerSegment,
RiskLevel,
Product,
CreatedAt
)
INCLUDE (Channel, Region, SourceIssueGroup);
GO
CREATE TABLE dbo.CustomerFeedbackStage
(
MaskedCustomerId NVARCHAR(30) NOT NULL,
Product NVARCHAR(100) NOT NULL,
CustomerSegment NVARCHAR(50) NOT NULL,
Region NVARCHAR(50) NOT NULL,
Channel NVARCHAR(50) NULL,
RiskLevel NVARCHAR(20) NULL,
CreatedAt NVARCHAR(40) NOT NULL,
SourceIssueGroup NVARCHAR(80) NOT NULL,
FeedbackText NVARCHAR(MAX) NOT NULL
);
GO
BULK INSERT dbo.CustomerFeedbackStage
FROM '$(CsvPath)'
WITH
(
FORMAT = 'CSV',
FIRSTROW = 2,
FIELDQUOTE = '"',
CODEPAGE = '65001',
ROWTERMINATOR = '0x0d0a',
TABLOCK
);
GO
INSERT INTO dbo.CustomerFeedback
(
MaskedCustomerId, Product, CustomerSegment, Region, Channel,
RiskLevel, CreatedAt, SourceIssueGroup, FeedbackText
)
SELECT
MaskedCustomerId, Product, CustomerSegment, Region, Channel,
RiskLevel, CONVERT(DATETIME2(0), CreatedAt, 126),
SourceIssueGroup, FeedbackText
FROM dbo.CustomerFeedbackStage;
GO
DROP TABLE dbo.CustomerFeedbackStage;
GO
SELECT
COUNT(*) AS imported_rows,
MIN(CreatedAt) AS min_created_at,
MAX(CreatedAt) AS max_created_at,
COUNT(DISTINCT Product) AS distinct_products,
SUM(CASE WHEN RiskLevel = N'Critical' THEN 1 ELSE 0 END) AS critical_count
FROM dbo.CustomerFeedback;
GO
PRINT 'CSV import into SQL Server 2022-compatible schema complete.';
PRINT 'Next: scripts\build_real_embeddings_ollama.ps1 -Database $(DemoDatabase) -Model bge-m3';
GO