【发布时间】:2022-01-13 17:23:11
【问题描述】:
我的任务是创建一个 sp,它将遍历提供的架构中的每个表,并找到没有唯一主键(重复主键)的任何表。一些表可能只有一列创建主键,而另一些表可能有包含未知列数的复合键。
例如:
CREATE DATABASE test
USE TEST
CREATE PROC duplicateCheck @schemaChoice nvarchar(60)= 'test'
CREATE TABLE onePrimary(
id int,
orders int,
orderCustomer varchar(20)
PRIMARY KEY (id)
)
CREATE TABLE twoPrimary(
id int,
item int,
color varchar(20),
size varchar(20),
PRIMARY KEY(id,item)
)
INSERT INTO onePrimary
VALUES(1,2,'Brad'),
(2,1,'Lenny'),
(3,1,'Rachel')
INSERT INTO twoPrimary
VALUES(1,1,'yellow','large'),
(2,1,'blue','small')
create table #primaryKey(
TABLE_NAME varchar(20),
COLUMN_NAME varchar(20)
)
SELECT @schemaChoice,
x.TABLE_NAME,
x.COLUMN_NAME,
FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE x, INFORMATION_SCHEMA.TABLE_CONSTRAINTS y
WHERE x.TABLE_SCHEMA = @schemaChoice
and y.CONSTRAINT_TYPE like 'PRIMARY KEY'
这就是我卡住的地方。
【问题讨论】:
标签: sql tsql stored-procedures dynamic-sql azure-synapse