rspec/rules/S1499/tsql/rule.adoc

31 lines
1.1 KiB
Plaintext
Raw Normal View History

2020-06-30 12:47:33 +02:00
include::../description.adoc[]
== Noncompliant Code Example
----
SELECT * -- Noncompliant
FROM persons
WHERE city = 'NEW YORK'
----
== Compliant Solution
----
SELECT firstname, lastname
FROM persons
WHERE city = 'NEW YORK'
----
== Exceptions
The following cases are ignored by this rule:
* <code>SELECT</code> from temporary tables: <code>SELECT * FROM #temp1</code>
* <code>SELECT</code> using common table expressions: <code>WITH A AS (SELECT C1 FROM T1) SELECT * FROM A;</code>
* Inside another <code>SELECT</code>: <code>SELECT C1 FROM T1 WHERE C2 IN (SELECT * FROM T2)</code>
* Inside <code>INSERT</code>: <code>INSERT INTO T1 SELECT * FROM T2</code>
* Inside <code>CREATE TABLE</code>: <code>CREATE TABLE T1 WITH (C1 = C2) AS SELECT * FROM T2</code>
* <code>SELECT</code> from rowset providers: <code>SELECT * FROM OPENXML (@idoc, '/ROOT/Customer',1)</code>
* <code>SELECT INTO</code>: <code>SELECT * INTO NEW_TABLE FROM T1</code>
* <code>SELECT</code> from variable table: <code>SELECT * FROM @table1</code>
* <code>SELECT</code> from derived table: <code>SELECT A.* FROM (SELECT X FROM T1) A INNER JOIN B ON A.X = B.X</code>