タグ付けされた質問 「dynamic-sql」

19
なぜSQL句でWHERE 1 = 1 AND <条件>を使用するのですか?
誰かWHERE 1=1 AND &lt;conditions&gt;がSQL句で使用する理由(連結された文字列から取得したSQL、ビュー定義のいずれか) SQLインジェクションから保護するためにこれが使用されることをどこかで見ましたが、それは非常に奇妙なようです。 注入WHERE 1 = 1 AND injected OR 1=1がある場合はと同じ結果になりinjected OR 1=1ます。 後で編集:ビュー定義での使用法についてはどうですか? 回答ありがとうございます。 それでも、なぜこの構造を使用してビューを定義するのか、またはストアドプロシージャ内で使用するのかはわかりません。 これを例にとります: CREATE VIEW vTest AS SELECT FROM Table WHERE 1=1 AND table.Field=Value
257 sql  dynamic-sql 


10
Postgresデータベースのすべてのテーブルを切り捨てる
再構築する前に、PostgreSQLデータベースからすべてのデータを定期的に削除する必要があります。これをSQLで直接行うにはどうすればよいですか? 現時点では、実行する必要のあるすべてのコマンドを返すSQLステートメントを考え出すことができました。 SELECT 'TRUNCATE TABLE ' || tablename || ';' FROM pg_tables WHERE tableowner='MYUSER'; しかし、それらを取得したら、プログラムで実行する方法がわかりません。


7
SQLは、あるテーブルのフィールドを別のテーブルのフィールドから更新します
2つのテーブルがあります。 A [ID, column1, column2, column3] B [ID, column1, column2, column3, column4] A常にのサブセットにBなります(つまり、のすべての列Aもに含まれますB)。 のすべての列のデータを使用して、特定の入力IDでレコードを更新したい。これはとの両方に存在します。BAAIDAB "Aのすべての列を設定する"UPDATEとだけ言って、列名を指定せずにそれを行う構文または他の方法はありますか? 私はPostgreSQLを使用しているため、特定の非標準コマンドも受け入れられます(ただし、推奨されません)。

10
PostgreSQL ROLE(ユーザー)が存在しない場合は作成します
PostgreSQL 9.1でROLEを作成するSQLスクリプトを作成する方法はありますが、すでに存在する場合はエラーを発生させませんか? 現在のスクリプトは単に次のものを持っています: CREATE ROLE my_user LOGIN PASSWORD 'my_password'; ユーザーが既に存在する場合、これは失敗します。私は次のようなものが欲しいです: IF NOT EXISTS (SELECT * FROM pg_user WHERE username = 'my_user') BEGIN CREATE ROLE my_user LOGIN PASSWORD 'my_password'; END; ...しかし、それは機能しません- IFプレーンSQLではサポートされていないようです。 PostgreSQL 9.1データベース、ロール、およびその他のいくつかを作成するバッチファイルがあります。実行するSQLスクリプトの名前を渡して、psql.exeを呼び出します。これまでのところ、これらのスクリプトはすべてプレーンSQLであり、可能であればPL / pgSQLなどを避けたいと思います。

6
動的SQLの結果をsql-serverの変数に取得する
ストアドプロシージャで次のように動的SQLを実行します。 DECLARE @sqlCommand nvarchar(1000) DECLARE @city varchar(75) SET @city = 'London' SET @sqlCommand = 'SELECT COUNT(*) FROM customers WHERE City = @city' EXECUTE sp_executesql @sqlCommand, N'@city nvarchar(75)', @city = @city count(*)列の値をSPの戻り値として使用するにはどうすればよいですか?


4
クエリ文字列の変数を宣言する
MS SQL Server 2005でこれを行う方法があるかどうか疑問に思っていました。 DECLARE @theDate varchar(60) SET @theDate = '''2010-01-01'' AND ''2010-08-31 23:59:59''' SELECT AdministratorCode, SUM(Total) as theTotal, SUM(WOD.Quantity) as theQty, AVG(Total) as avgTotal, (SELECT SUM(tblWOD.Amount) FROM tblWOD JOIN tblWO on tblWOD.OrderID = tblWO.ID WHERE tblWO.Approved = '1' AND tblWO.AdministratorCode = tblWO.AdministratorCode AND tblWO.OrderDate BETWEEN @theDate ) ... etc …

8
PostgreSQL関数パラメーターとしてのテーブル名
Postgres関数のパラメーターとしてテーブル名を渡したい。私はこのコードを試しました: CREATE OR REPLACE FUNCTION some_f(param character varying) RETURNS integer AS $$ BEGIN IF EXISTS (select * from quote_ident($1) where quote_ident($1).id=1) THEN return 1; END IF; return 0; END; $$ LANGUAGE plpgsql; select some_f('table_name'); そして私はこれを手に入れました: ERROR: syntax error at or near "." LINE 4: ...elect * from quote_ident($1) where quote_ident($1).id=1)... …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.