簡體   English   中英

創建表時應該使用什么SqlDbType?

[英]What SqlDbType should be used when creating a table?

我不知道這是否真的需要......但我盡可能編寫強大的代碼,所以:

創建表時應該使用什么SqlDbType SqlDbType.NChar 或者Unicode表名會有問題嗎? 或者也許是Var類型之一,因為長度未知? 我習慣在數據庫行的上下文中考慮這些類型,而不是表,所以我不確定這里應該使用什么。

編輯

例如,一行如下:

sqlCommand.Parameters.Add(new SqlParameter(parameterName,SqlDbType.NChar){ Value = value });

對於CREATE TABLE命令。

無法參數化表名或列名或任何其他數據庫對象。 只能參數化您的值。

仍然可以使用字符串連接, 在我看來,將您的表名作為輸入是太冒險了。 您應該在將表名放入SQL之前對表名執行非常嚴格的驗證,或者具有一組列出白名單的有效表名,以避免SQL注入攻擊。

除此之外, 參數化語句僅適用於DML語句而不適用於DDL語句

SQL Server中的所有對象名都是sysname數據類型。 不知道SqlDbType是否包含sysname,但它在功能上與nvarchar(128)相同,因此您可以使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM