31 lines
1.1 KiB
Plaintext
31 lines
1.1 KiB
Plaintext
![]() |
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>
|