Hard to believe, but this ordinary SSDL type definition
Code: Select all
<EntityType Name="CatalogItem">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="int" Nullable="false" />
<Property Name="SKU" Type="NVARCHAR2" MaxLength="100" />
<Property Name="URL" Type="NVARCHAR2" MaxLength="100" />
</EntityType>
causes the following statement to be generated as a part of the database script (note
SKU and
URL columns are
not escaped):
Code: Select all
CREATE TABLE "CatalogItem" (
"Id" NUMBER(10) NOT NULL,
SKU NVARCHAR2(100) NULL,
URL NVARCHAR2(1000) NULL,
PRIMARY KEY ("Id")
)
I think the two columns are not escaped because the corresponding SSDL properties are in uppercase. I'm not quite sure if this can lead to problems, but wouldn't it be safer to
always escape all SQL identifiers? Just to be always on the safe side, avoiding any possible collisions with reserved words and the like.